Créer une DLL en VB.NET et l'expliter deouis VBA excel

Résolu
lerian01 Messages postés 8 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 21 août 2010 - 21 août 2010 à 14:37
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 22 août 2010 à 08:55
Bonjour,

J'ai développé une grosse application VBA excel avec un tas de modules. Pour des raisons de performances et de dissimulation du code, j'aimerai progressivement remplacer certains modules VBA par des DLL contenant les mêmes fonctions et appelées par le code VBA.

J'ai essayé de créer un module de classe dll avec VB express 2010, mais je bute sur de nombreux problèmes (notamment le fait que la DLL encapsule tout dans des classes et que VBA me jette ensuite en prétendant qu'il n'y a pas d'entry point à la dll).

Sur Internet, je n'ai trouvé que des échanges confus, incomplets et contradictoires à ce propos.

D'où mes questions :

1 - Quelqu'un peut-il me dire s'il est possible de créer avec VB NET une DLL qui peut être référencée dans excel ?
Si on ne peut pas avec VB net, est-ce possible avec C# ou avec Visual C++ et comment ?

2- Si oui, comment fait-on référence dans excel à cette DLL et comment on peut appeler les fonctions de cette dll depuis VBA ?

Merci pour votre aide éventuelle

Yannick

5 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
21 août 2010 à 20:44
Salut,

Avec VB.Net c'est possible, il suffit de rendre l'objet visible par COM (ActiveX)

Voir ici

@+

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
21 août 2010 à 21:49
"Pour des raisons de performance..."
En ce cas tout langage interprété (tel .NET) est à exclure.
Charger par dessus VBA une 2eme Virtual Machine par un appel COM ira à l'opposé de ce que tu penses obtenir, c'est encore plus lent à tout coup.

ciao...
BruNews, MVP VC++
3
lerian01 Messages postés 8 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 21 août 2010
21 août 2010 à 20:52
Merci !

Yannick
0
lerian01 Messages postés 8 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 21 août 2010
21 août 2010 à 22:20
Merci BruNews

Donc j'évite de perdre mon temps.
VB.NET est également un langage interprété ?!?
C'est lamentable ... si je résume, en 2010, si on souhaite écrire une application qui ne rame pas, c'est C++ ou rien.

Yannick
0

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

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 août 2010 à 08:55
Le couple C (pour le cadre applicatif) et ASM (pour les fonctions de calculs lourds) est absolument imbattable et de TRES loin.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous