Bonjour à tous (et toutes mes excuses si cette discussion n'est pas au bon endroit, c'est la première fois que je le fais
J'ai créé une DLL de classe sous Visual Studio 2017 et j'ai fait (du moins je le pense...) ce qu'il fallait : la DLL est bien générée avec le fichier .tlb associé. Je peux utiliser sans problème cette DLL dans une appli de test que j'ai créé dans Visual Studio.
Je vais ensuite dans mon appli Access dans MS Visual Basic pour application (alt+F11) et je référencie ma DLL (menu outil/Référence + cocher la check box devant ma DLL qui est bien présente dans les références disponibles).
Pour utiliser une méthode de ma DLL j'instancie un objet de la classe de ma DLL :
A noter que VBA me propose bien en autocomplétion le nom de ma DLL (MyDllTestVS) et sa classe (MyClassTest)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3Dim objTest As MyDllTestVS.MyClassTest Set objTest = New MyDllTestVS.MyClassTest
Ce que je ne comprends pas, c'est que lorsque je veux utiliser une méthode de la classe, VBA est incapable de me la proposer en autocomplétion. Si j'utilise l'explorateur d'objets (F2) il trouve bien ma classe MyClassTest mais il ne voit aucune Méthode ou Propriété. Pourtant je peux les appeler dans le code de ma fonction et ça marche sans problème.
Ce qui est bizarre c'est que je peux mettre n'importe quoi comme nom de méthode, ça ne plante pas à la compil (mais à l’exécution).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 objTest.mynumber = CInt(txChiffre) objTest.DspBonjour Set objTest = Nothing
je peux utiliser ma DLL c'est donc déjà bien, mais comme elle va s'enrichir (en fait, je fais une migration d'une DLL VB6 sous Visual Studio) j'aimerais vraiment pouvoir bénéficier des fonctions d’autocomplétion de VBA cela évite les erreurs de frappes/de compil/d’exécution et c'est pratique quand il y a beaucoup de classes/méthode/Properties dans la DLL.
Merci de votre aide si quelqu'un a une idée !
Partager