Import export ThisWorkbook VBA
Bonjour Mesdames Messieurs,
Tout les jours j'ai un nouveau fichier qui vient remplacer l'ancien et l'une des taches de la macro VBS est d'exporter les codes vba contenu dans ThisWorkbook et un autre module. L'export est facile (il me créer un fichier .cls) mais lors de l'import il me colle le code dans un module de classe(l'import du module marche facilement par contre).
Le code que je souhaite importer doit se lancer à l'ouverture du fichier et donc doit pour moi être dans l'objet ThisWorkbook.
Voici ce que je suis pour l'instant obligé de faire pour régler le soucis. merci de m'indiquer comment simplifier le code.
Merci d'avance pour votre aide
' Export des projets VBA du classeur Excel
xl_Fiab_OP.ActiveWorkbook.VBProject.VBComponents(VB_sheet_name).Export Path_Control & VB_sheet_name & ".cls"
xl_Fiab_OP.ActiveWorkbook.VBProject.VBComponents(VB_module_name).Export Path_Control & VB_module_name & ".bas"
' Import module VB
xl_Control.ActiveWorkbook.VBProject.VBComponents.Import(Path_Control & VB_module_name & ".bas")
' Import macro VB dans un module de classe
Set VB_Component = xl_Control.ActiveWorkbook.VBProject.VBComponents.Import(Path_Control & VB_sheet_name & ".cls")
Set Code_Module_VB = VB_Component.CodeModule
' Copie du module dans la Feuil VBA désirée
With xl_Control.ActiveWorkbook.VBProject.VBComponents(VB_sheet_name).CodeModule
i = .CountOfLines
.DeleteLines 1, i
.InsertLines 1, Code_Module_VB.Lines(1, Code_Module_VB.CountOfLines)
End With
'Suppression du module précédemment chargé
With xl_Control.ActiveWorkbook.VBProject.VBComponents
.Remove .Item(Code_Module_VB.Name)
End With
file_system.DeleteFile(Path_Control & VB_sheet_name & ".cls")
file_system.DeleteFile(Path_Control & VB_module_name & ".bas")Bonjour Misterart,
Plutôt que cette méthode, il me semble que tu pourrais regarder du côté des modèles EXCEL .xltm