Code VBA pour charger DLL dans Excel

cs_Pijay Messages postés 21 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 12 juillet 2007 - 12 juil. 2007 à 15:43
cs_Pijay Messages postés 21 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 12 juillet 2007 - 12 juil. 2007 à 17:10
Bonjour à tous,

J'ai une appli Excel avec plusieurs routines sous VBA. Je voudrais charger une DLL via le code VBA de ma feuille EXCEL. Est-ce-possible? Je trouve rien sur les forums.

En gros, il me faut le code en VBA pour charger une DLL sous EXCEL

Si quelqu'un peut m'aider ca serait sympa.

Merci.

7 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 juil. 2007 à 15:47
Bonjour,

1) Une dll de quel type exactement ?
2) tu veux vraiment charger toute la librairie ou n'utiliser que une/des fonction(s) de la dite librairie ?

3) S'il te plait, les questions relatives au développement sous VBA doivent être posées dans la section "langages dérivés / VBA" et pas dans la présente.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2007 à 15:48
qu'entends tu par 'charger un dll' ?

je serai tenté de te parler de LoadLibrary...
0
cs_Pijay Messages postés 21 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 16:12
Tout d'abord de votre attention.


En ce qui concerne le theme, je n'ai pas trouvé "langages dérivés / VBA", c t pas dans la liste ?????

Ma librairie es une DLL ActiveX développé sous VB6.


J'ai routine que j'ai développé pour Access, qui utilise le "LoadLibrary" , et qui fonctionne. MAIS je n'arrive pas à l'adapter pour Excel. Ca ne fonctionne pas.

Voila pour les détails....
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2007 à 16:24
charger un dll activeX ?

une fois enregistrée (RegSvr32)
tu peux commencer a créer une instance d'une des classe exportées...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Pijay Messages postés 21 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 16:36
Heu ? A vrai dire je te suis pas bien... je sais je suis une huitre en codage....


A vrai dire, j'ai développé cette routine qui fonctionne très bien sous Access :

            ' On vérifie que la référence n'existe déjà pas
            For i = 1 To application.References.Count
                If application.References(i).Name = Split(Dir(path), ".")(0) Then _
                find = True
            Next



            ' On ajoute une référence de la DLL dans Access
            If Not find Then application.References.AddFromFile path



            ' On charge la DLL en mémoire
            hDLL = LoadLibrary(path)
            If hDLL = 0 Then Err.Raise 15003, , msg_erreur(15003) 'Err.Raise 513, ,           "Impossible de trouver la DLL"



            ' On récupère l'adresse de la DLL
            adressDLL = GetProcAddress(hDLL, "DllRegisterServer")



            ' On enregistre la DLL
            If CallWindowProc(adressDLL, frm_hwnd, 0&, 0&, 0&) <> ERROR_SUCCESS Then
                ' si on échoue on essaie avec PsExec
                Shell chemin_psexec & " -s -i regsvr32 /s " & path
            End If



            ' On libère la mémoire
            FreeLibrary hDLL

Je sais pas si ca peut t'aider a comprendre ce que g fais pour Access. J'aimerais utiliser la meme méthode pour Excel. Mais ca marche pas ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 juil. 2007 à 16:52
code correct, as tu bien reporté les déclarations d'APIs ?
0
cs_Pijay Messages postés 21 Date d'inscription mardi 6 mars 2007 Statut Membre Dernière intervention 12 juillet 2007
12 juil. 2007 à 17:10
Oui j'ai tout reporté comme il faut.....
C'est pour ca, je comprend vraiment pas ???
0
Rejoignez-nous