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 :

Références objets VBA pas disponibles par défaut


Sujet :

Macros et VBA Excel

  1. #21
    Invité
    Invité(e)
    Par défaut
    mais là encore j'ai un souci : j'ai testé plusieurs codes VBA qui ne permettent de lister des références activées et récupérer leur GUID, mais aucune de fonctionne sur mon poste ! J'ai les titres et la macro tourne, mais aucun listage de quoi que ce soit à part les titres de colonnes ! Un lien à mon souci ?
    Sous Excel 210 le code suivant fonctionne sans problème, pour l'utiliser il faut activer l'option dans l'Excel
    "Accès approuvé au modèle d'objet du projet VBA"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Dim md
        Dim s As String
        For Each md In ActiveWorkbook.VBProject.References
           s = s & md.Name & " " & Chr(9) & md.GUID & vbNewLine
        Next
        MsgBox s
    et après pour activer une référence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     On Error Resume Next
     ThisWorkbook.VBProject.References.AddFromGuid _
     "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 0, 2

  2. #22
    Futur Membre du Club Avatar de Electro02
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Avril 2018
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Volid Voir le message
    Sous Excel 210 le code suivant fonctionne sans problème, pour l'utiliser il faut activer l'option dans l'Excel
    "Accès approuvé au modèle d'objet du projet VBA"
    Bonjour Volid,

    Merci pour ton intervention et désolé pour le retard dans ma réponse.

    La lancement de ton code me déclenche une erreur 1004 (la méthode 'VBProject' de l'objet '_Workbook' a échoué)

    C'est peut-être parce que je n'ai trouvé aucune ligne "Accès approuvé au modèle d'objet du projet VBA" à activer dans les différentes rubriques des options de mon Excel 2016.
    Peux-tu me dire précisément où je trouve cela, stp ?

    Merci par avance

  3. #23
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 138
    Points : 9 972
    Points
    9 972
    Billets dans le blog
    5
    Par défaut
    Bonjour,


    Fichier >> Options >> Centre de gestion de la confidentialité >> Paramètres des macros >> cocher "Accès approuvé au modèle d'objet du projet VBA"

  4. #24
    Futur Membre du Club Avatar de Electro02
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Avril 2018
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    Fichier >> Options >> Centre de gestion de la confidentialité >> Paramètres des macros >> cocher "Accès approuvé au modèle d'objet du projet VBA"
    Bonjour,

    OK merci beaucoup.

    Je prends bonne note des deux derniers messages, car ils me serviront sûrement plus tard.

    Mais là, en l'occurrence, comme je n'ai pas accès au code VBA de l'outil que je dois utiliser, cela ne m'apporte malheureusement pas de solution immédiate...

  5. #25
    Invité
    Invité(e)
    Par défaut
    Si j'ai bien compris ce code doit être placé dans un addin xlam pour être appelé à chaque création d'un nouveau classeur ou à chaque ouverture d'un fichier existant

    J'ai fait un petit test avec ce code et a l'aire fonctionner correctement j'ai toujours la référence activée

    dans le volet de ThisWorkBook ajouter le code suivant qui active une seule référence à adapter selon le besoin
    et après installer le fichier autant que addin xlam

    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
    Dim WithEvents App As Excel.Application
     
    Private Sub App_NewWorkbook(ByVal Wb As Workbook)
     On Error Resume Next
       Wb.VBProject.References.AddFromGuid _
       "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 0, 2
    End Sub
     
    Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
     On Error Resume Next
       Wb.VBProject.References.AddFromGuid _
       "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 0, 2
    End Sub
     
    Private Sub Workbook_Open()
       Set App = Application
    End Sub

  6. #26
    Futur Membre du Club Avatar de Electro02
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Avril 2018
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Volid Voir le message
    Si j'ai bien compris ce code doit être placé dans un addin xlam pour être appelé à chaque création d'un nouveau classeur ou à chaque ouverture d'un fichier existant

    J'ai fait un petit test avec ce code et a l'aire fonctionner correctement j'ai toujours la référence activée

    dans le volet de ThisWorkBook ajouter le code suivant qui active une seule référence à adapter selon le besoin
    et après installer le fichier autant que addin xlam

    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
    Dim WithEvents App As Excel.Application
     
    Private Sub App_NewWorkbook(ByVal Wb As Workbook)
     On Error Resume Next
       Wb.VBProject.References.AddFromGuid _
       "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 0, 2
    End Sub
     
    Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
     On Error Resume Next
       Wb.VBProject.References.AddFromGuid _
       "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}", 0, 2
    End Sub
     
    Private Sub Workbook_Open()
       Set App = Application
    End Sub
    Ah ! Mais voilà quelque chose qui me semble fort intéressant !

    Oui, si je ne peux pas toucher au code VBA du fameux classeur qui doit activer certaines références, qui ne sont pas là par défaut, c'est idéal de charger ces références sur tout Excel, vide ou existant, dès que ouvre Excel, et avant même de créer un nouveau classeur ou d'un ouvrir un...
    (désolé pour cette phrase interminable ^^)

    Je vais tester cela, mais avant une question :
    Une fois que j'ai identifié le GUID de MSFORM, par exemple, est-ce le code GUID récupéré est le même sur tous les PC qui seront équipés du même pack Office ?
    Oui alors à chaque PC son GUID pour telle ou telle référence précise ?

  7. #27
    Invité
    Invité(e)
    Par défaut
    Le GUID est unique que ce soit celui de la lib ou ses composants ses interfaces, ces informations sont placées dans une ressource typelib enregistrée au sein du même fichier binaire dll ou ocx dans certains cas dans un fichier extérieur tlb ou autre, lors de l'opération du recensement ces infos sont récupérées pour enregistrer la lib dans le registre.
    Dernière modification par Invité ; 22/06/2024 à 09h36.

  8. #28
    Futur Membre du Club Avatar de Electro02
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Avril 2018
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Volid Voir le message
    Le GUID est unique que ce soit celui de la lib ou ses composants ses interfaces, ces informations sont placées dans une ressource typelib enregistrée au sein du même fichier binaire dll ou ocx dans certains cas dans un fichier extérieur tlb ou autre, lors de l'opération du recensement ces infos sont récupérées pour enregistrer la lib dans le registre.
    OK merci. Mais unique à quel niveau ? Pour chaque PC ou unique quelque soit le PC, selon le nom de l'ocx/dll ?
    J'ai à peu près compris ce qui est expliqué, mais cela ne répond pas tout à fait à ma demande précise ;-)

  9. #29
    Futur Membre du Club Avatar de Electro02
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Avril 2018
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Quelqu'un peut-il répondre à ma dernière question ?

Discussions similaires

  1. Rendre un obstacle n'est pas traversé par un objet en ActionScript3! comment faire???
    Par Jony Bernard dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 16/09/2016, 03h07
  2. Réponses: 1
    Dernier message: 11/05/2016, 16h25
  3. [PPT-2007] Utiliser du code VBA sur plusieurs objets et pas qu'un seul
    Par beegees dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 25/03/2010, 09h55
  4. Réponses: 2
    Dernier message: 08/02/2007, 10h20
  5. Réponses: 1
    Dernier message: 25/10/2006, 11h13

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