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

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

5 réponses

Répondre au sujet
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 21 août 2010 à 20:44
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 21 août 2010 à 21:49
+3
Utile
"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++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
lerian01 8 Messages postés lundi 27 novembre 2006Date d'inscription 21 août 2010 Dernière intervention - 21 août 2010 à 20:52
0
Utile
Merci !

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