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

Messages postés
8
Date d'inscription
lundi 27 novembre 2006
Dernière intervention
21 août 2010
- - Dernière réponse : BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Mayzz
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
3
Merci
"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++

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de BruNews
Messages postés
8
Date d'inscription
lundi 27 novembre 2006
Dernière intervention
21 août 2010
0
Merci
Merci !

Yannick
Commenter la réponse de lerian01
Messages postés
8
Date d'inscription
lundi 27 novembre 2006
Dernière intervention
21 août 2010
0
Merci
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
Commenter la réponse de lerian01
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Dernière intervention
7 novembre 2014
0
Merci
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++
Commenter la réponse de BruNews

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.