IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Acces aux fonctions d'une DLL par code VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut Acces aux fonctions d'une DLL par code VBA
    Bonjour,

    Alors voilà, j'ai développé un COM-AddIn en C# pour Excel qui s'ajoute et fonctionne correctement. Mon AddIn est en fait une barre d'outils qui s'ajoute à Excel.

    Maintenant, je veux dans du code VBA faire appel à certaines fonctions contenues dans la dll de l'AddIn. Mais dans une précédure VBA quand je fais l'appel suivant :

    Set plugin = CreateObject("MYyPlugin.MyClass")

    J'obtiens le message d'erreur suivant : "Un composant ActiveX ne peut pas créer d'objet"

    J'en comprends qu'un composant COM ne peut pas être appelé comme une DLL normale. Mais comment pourrai-je appeller les fonctions de ma dll?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 263
    Points
    34 263
    Par défaut
    salut,

    regarde si le tuto sur les dll est interessant :
    http://rp.developpez.com/vb/tutoriels/dll/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    bjr,

    faut comprendre l'anglais mais sur msdn il y a l'air d'avoir l'explication :
    http://msdn.microsoft.com/en-us/library/bb608621.aspx

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 97
    Points : 53
    Points
    53
    Par défaut
    Bon, j'ai résolu mon pb!
    L'appel dans VBA était correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set plugin = CreateObject("MYyPlugin.MyClass")
    Par contre, il fallait bien configurer la dll (qui était en C#):
    1) Mettre l'assembly en COM-Visible = true
    2) l'enregistrer pour le COM-Interop (propriétés du projet C#)
    3) Déclarer un GUID pour la classe
    5) Ajouter un attribut de classe : [ClassInterface(ClassInterfaceType.AutoDual)]

    En fin de compte, c'était une erreur .net et non pas VBA
    Merci tout de même!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accés au fonction d'une DLL
    Par bridy224 dans le forum C++
    Réponses: 11
    Dernier message: 07/06/2007, 13h34
  2. pb d'appel aux fonctions d'une DLL (visual C++ 6.0)
    Par touti35 dans le forum Visual C++
    Réponses: 4
    Dernier message: 12/12/2006, 09h37
  3. [C++ 1.1] Comment avoir accès aux méthodes d'une dll ?
    Par jacklsurf dans le forum Framework .NET
    Réponses: 6
    Dernier message: 15/04/2006, 22h49
  4. Appel aux fonctions d'une DLL externe ??
    Par Fbartolo dans le forum Access
    Réponses: 7
    Dernier message: 21/11/2005, 17h54
  5. Acces aux variables d'une DLL
    Par abignon dans le forum MFC
    Réponses: 1
    Dernier message: 08/09/2005, 14h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo