Importer des modules et des formulaires à partir d'un fichier.xla

Jilde

XLDnaute Occasionnel
Bonjour les gens ;) !

J'ai un fichier "Macros_Perso.XLA" contenant un formulaire et deux modules qui fonctionnent très bien.

Je souhaiterais pouvoir récupérer ce formulaire et ces modules dans les nouveaux fichiers Excel que je crée ...
L'objectif est de pouvoir créer toute sorte de macro dans un seul et unique fichier et de pouvoir les récupérer dans n'importe quel fichier...

Dans mes nouveaux fichiers Excel, je génère donc une barre d'outils avec un bouton qui me lance une des macros contenues dans le fichier "Macros_Perso.XLA".
Code:
Private Sub Workbook_Open()
    Outils_Perso
End Sub
Code:
Sub Outils_Perso()
    'Définit une barre d'outils
    Set cmd = CommandBars.Add(Name:="Perso Outils", Temporary:=True)
    cmd.Visible = True
    'Ajoute un bouton à la barre d'outils
    Set btn = cmd.Controls.Add(Type:=msoControlButton)
    With btn
        'Définit le texte du bouton
        .Caption = "Outils Perso"
        'Définit l'action associée au bouton
        .OnAction = "'C:\Perso\Macros_Perso.XLA'!Lancement_Menu_Perso"
        'Définit le style du bouton
        .Style = msoButtonCaption
    End With
End Sub
Jusque là, tout va bien ...

Mais il me manque le code permettant de copier certains formulaires et certains modules contenus dans "Macros_Perso.XLA" vers mes nouveaux fichiers.

Suis-je assez clair ?

Et d'avance merci pour vos réponses !
 

Jilde

XLDnaute Occasionnel
Re : Importer des modules et des formulaires à partir d'un fichier.xla

Youpla boum !

J'ai trouvé ! Enfin presque ...

J'ai rajouté les imports que je souhaitais dans le code du nouveau fichier pour qu'il aille me chercher mes composants VBA :
Code:
Sub Outils_Perso()
    'Importe les composants VBA
    ActiveWorkbook.VBProject.VBComponents.Import "C:\Perso\Menu_Perso.frm"
    ActiveWorkbook.VBProject.VBComponents.Import "C:\Perso\Outils_Perso.bas"
    ActiveWorkbook.VBProject.VBComponents.Import "C:\Perso\Macros_Perso.bas"

    'Définit une barre d'outils "Outils Perso" et la rend visible
    Set cmd = CommandBars.Add(Name:="Outils Perso", Temporary:=True)
    cmd.Visible = True
    'Ajoute un bouton à la barre d'outils
    Set btn = cmd.Controls.Add(Type:=msoControlButton)
    With btn
        'Définit le texte du bouton
        .Caption = "Outils Perso"
        'Définit l'action associée au bouton
         .OnAction = "Macro_Perso"
        'Définit le style du bouton
        .Style = msoButtonCaption
    End With
End Sub

Et ça marche super bien !
Sauf qu'il faut cocher l'option "Faire confiance au projet Visual Basic" dans l'onglet "Editeurs approuvés" au niveau de la sécurité des macros ...
Car dans le cas ou ce n'est pas cocher, j'ai une erreur d'exécution '1004' :
"L'accès par programme au projet Visual Basic n'est pas fiable"
Et je voudrais bien me passer de ça.

Donc je cherche maintenant à être un "éditeur approuvé" pour pouvoir utiliser mes macros sans avoir à cocher cette case ...

Je continue mes recherches, mais si quelqu'un a la soluce, qu'il hésite pas ;) !!

At'chao !!
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 639
Membres
104 235
dernier inscrit
Floflodu37