one1718
Messages postés4Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 7 juillet 2006
-
5 juil. 2006 à 13:29
one1718
Messages postés4Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention 7 juillet 2006
-
7 juil. 2006 à 05:42
Bonjour,
Je souhaite utiliser une fonction contenue dans une dll au sein d'une macro VBA.
pour ce faire j'ai un morceau de code du genre:
public declare maFonction lib "maDll.dll" (arguments..) as typeDeRetour
puis plus loin
sub maSub()
x = maFonction(arguments..)
end sub
Mon probleme c'est que excel ne "charge" pas la dll "maDll.dll". en fait Excel ne vérifie meme pas qu'elle existe. Si je donne un mauvais nom à maDll.dll je peux tout de mem compiler le module sans erreur. Lors de l'appel de maFonction() au sein de la sub, la fonction retourne systématiquement 0, et aucune erreur ne survient.
j'ai déjà essayé de
1/ mettre la dll dans le meme répertoire que mon classeur
2/ donner le chemin de la dll en meme temps que l'appel (ex: public declare maFonction lib "c:\tmp\maDll.dll" ...)
3/ spécifier chdir "c:\chemindemadll" juste avant l'appel de la fonction
rien n'y fait...
J'ai windows xp pro avec un excel 2003
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 5 juil. 2006 à 13:59
Salut,
Tu peux essayer de faire référence directement à la DLL.
Depuis l'éditeur VBA d'excel.
Menu Outils => Références => PArcourir : et la tu choisis ta DLL et tu accepte.
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 juil. 2006 à 20:10
Salut
Si ta DLL a été compilée en VB6, on ne peut pas déclarer la fonction comme tu l'as fait (qui est pourtant standard).
Il suffit d'ajouter ta DLL aux références (sous Excel, je ne sais pas trop où ça se fait) et dans ton code, il suffit d'appeler ta fonction comme ceci :
maVariable = maDLL.maFonction(Arguments)
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accro