cs_Pijay
Messages postés21Date d'inscriptionmardi 6 mars 2007StatutMembreDernière intervention12 juillet 2007
-
12 juil. 2007 à 15:43
cs_Pijay
Messages postés21Date d'inscriptionmardi 6 mars 2007StatutMembreDernière intervention12 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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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.
cs_Pijay
Messages postés21Date d'inscriptionmardi 6 mars 2007StatutMembreDernière intervention12 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.
cs_Pijay
Messages postés21Date d'inscriptionmardi 6 mars 2007StatutMembreDernière intervention12 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 ?