Declare function - inopérant

one1718 Messages postés 4 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 7 juillet 2006 - 5 juil. 2006 à 13:29
one1718 Messages postés 4 Date d'inscription jeudi 16 septembre 2004 Statut Membre Derniè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

Merci pour vos précieux commentaires...

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
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>
0
one1718 Messages postés 4 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 7 juillet 2006
5 juil. 2006 à 14:06
Malheureusement cela ne marche pas....
merci totu de meme
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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
0
one1718 Messages postés 4 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 7 juillet 2006
7 juil. 2006 à 05:42
Toujours pas....
:-(
0
Rejoignez-nous