La question étant récurrente et connaissant la réponse...
Donc, très largement inspiré d'un code de SilkyRoad, mais ne l'ayant pas trouvé dans la FAQ, une solution pour exporter et importer tous les objets d'un projet VBA.
Pour exporter :
Attention : Les feuilles de calculs ont la même extension que les modules de classe (cls) (pas le même type). Je ne les placerais pas dans le même répertoire (...)
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 Sub ExporterFrmEtModules() Dim LeFich For Each LeFich In ThisWorkbook.VBProject.VBComponents Select Case LeFich.Type Case 1 ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".bas" Case 2 ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".cls" Case 3 ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\" & LeFich.Name & ".frm" Case 100 ThisWorkbook.VBProject.VBComponents(LeFich.Name).Export "D:\MesMacros\LesFeuilles\" & LeFich.Name & ".cls" End Select Next End Sub
Pour importer :
A toutes fins utiles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub ImporterTousLesFichiersDunRépertoire() '"d'après" SilkyRoad Dim NomFich NomFich = Dir("D:\MesMacros\*.*") Do While NomFich <> "" Application.VBE.ActiveVBProject.VBComponents.Import (NomFich) NomFich = Dir Loop End Sub
Partager