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 :

Problème de DLL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Par défaut Problème de DLL
    Bonjour,

    Après plusieurs heures de recherche, je bloque un petit peu.

    J'ai créé un code sur excel 2010 qui fonctionne. Une fois lancé sur excel 2013, j'ai une erreur de chargement de la DLL sur la partie :

    Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).ExecuteJ'ai regardé mes références j'ai pour 2013 :

    - Visual Basic for applications
    - Microsoft Excel 15.0 objectif library
    - OLE automation
    - Microsoft forms 2.0 object library
    - Microsoft office 15.0 object libray

    J'ai regardé mes références j'ai pour 2010 :

    - Visual Basic for applications
    - Microsoft Excel 14.0 objectif library
    - OLE automation
    - Microsoft forms 2.0 object library
    - Microsoft office 14.0 object libray


    Hormis la version 14 et 15 qui diffère j'ai la même chose. Comment puis-je faire fonctionner mon code sur du 2013? ci-dessous le code.

    PI : j'ai aucune référen



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub UnprotectVBProject(WB As Workbook, ByVal Password As String)
      Dim vbProj As Object
     
      Set vbProj = WB.VBProject
     
      'Ne peut procéder si le projet est non-protégé.
      If vbProj.Protection <> 1 Then Exit Sub
     
      Set Application.VBE.ActiveVBProject = vbProj
     
      'Utilisation de "SendKeys" Pour envoyer le mot de passe.
     
      SendKeys Password & "~~"
      'MsgBox "Après Mot de passe"
      Application.VBE.CommandBars(1).FindControl(ID:=2578, recursive:=True).Execute
      Application.Wait (Now + TimeValue("0:00:1"))
     
    End Sub
    Merci par avance pour votre retour,

    Cordialement,

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Sans aucune certitude, je parierais plutôt sur le numéro ID du contrôle qui a changé entre les versions.

    Ca me semble plus logique qu'un problème de bibliothèque qui, de toute façon, serait indiquée manquante dans les références.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Par défaut
    Merci Menrih pour ton retour,

    J'ai regardé du coup pour voir comment récupérer l'ID 2578 en version 2013, mais je trouve rien.

    J'ai les ID pour les commandBar excel, mais pas les commandBar de l'éditeur VBA.

    Il y a t-il moyen de contourner le numéro ID sinon ?

    Merci d'avance,

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Aussi paradoxal que ça puisse paraitre, il est très ardu de trouver de l'aide pour tout ce qui concerne la manipulation d'objets VBE en VBA.

    Les rares fois où j'ai eu l'inconscience de m'aventurer sur ce terrain, j'y suis allé en pilotant à vue avec l'explorateur d'objet (touche F2) et quelques miracles de la touche F1 sur des objets précis.
    Mais pour trouver des listes de collections de constantes, c'est la traversée de la jungle.

    Tu peux essayer de faire des boucles en cherchant chaque code de Contrôle et en faisant afficher leur nom (avec la propriété Name). Sur un coup de chance...

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    peui etre que simplement ceci t'aidera a trouver ce que tu cherche

    listes des command bar dans vbe et tout leur boutons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
        Dim barre, ctrl
        Set mabarre = Application.VBE.CommandBars(1)
        For Each barre In mabarre.Controls
            Debug.Print " barre caption " & barre.Caption & "   ID " & barre.ID
            For Each ctrl In barre.Controls
                Debug.Print "             control caption " & ctrl.Caption & "   ID " & ctrl.ID
            Next
        Next
    End Sub
    chez moi le 2578 c'est
    control caption Propriétés d&e VBAProject... ID 2578
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre à l'essai
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Par défaut
    Oui Menhir, j'ai vu aussi qu'il y a peu d'information sur les manipulations VBE.

    Mais je souhaite créer un fichier sous forme de "PATCH" qui va modifier du code sur un autre fichier sans avoir besoin d'envoyer à chaque fois une nouvelle version de l'outil avec les corrections en cas de bug ^^

    J'allais te dire merci pour ton aide et que j'allais regarder pour trouver un code pour avoir mes commandes en VBA, mais paticktoulon a fait un jolie code

    Merci à toi PatrickToulon, je le test dès demain au travail sur la version 2013, car chez moi je suis en 2010. merci à vous et bonne soirée.

    cdt,

Discussions similaires

  1. Problème utilisation DLL
    Par Tub-95 dans le forum MFC
    Réponses: 4
    Dernier message: 02/11/2005, 12h00
  2. conteneur de la STL (problème avec DLL et COM)
    Par moldavi dans le forum MFC
    Réponses: 8
    Dernier message: 25/07/2005, 22h43
  3. Problème de dll à l'execution
    Par gege2061 dans le forum Windows
    Réponses: 3
    Dernier message: 11/03/2005, 11h22
  4. problème execution dll
    Par semenzato dans le forum MFC
    Réponses: 15
    Dernier message: 19/12/2003, 16h40
  5. Problème de DLL.
    Par Lunedor dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2003, 10h17

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