Bonjour
j'ai un fichier mère qui me permet de piloter des fichiers utilisateurs tous créer à partir d'un même modèle. Dans le modèle, il y a des USF et donc des macros attachés.
Donc, si je veux ajouter ou modifier une macro dans tous les fichiers utilisateurs, je dois tous les ouvrir, faire la modif et les fermer.
Il y a risque d'erreur ou d'omission...
Je ne peux pas piloter les USF à partir du fichier mère, j'imagine, vu que les fichiers utilisateurs peuvent être ouvert en même temps, mon fichier mère sera sollicité par plusieurs fichiers, on ne peut pas faire tourner des macros en même temps (même s'il n'y a aucun enregistrement sur le fichier mère) ?
Y a-t-il une autre solution ?
J'ai trouvé ce code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 'mettre à jour le code d'un module existant dans un autre classeur
Sub MAJCodeModule()
Dim S As String, Wbk As Workbook
'module à copier
With ActiveWorkbook.VBProject.VBComponents("CodACopier").CodeModule
S = .Lines(1, .CountOfLines)
End With
Set Wbk = Workbooks("ClassEnfant1.xlsm")
'détruire le module à mettre à jour s'il existe
On Error Resume Next
With Wbk.VBProject.VBComponents
.Remove .Item("CodA_Modif")
End With
On Error GoTo 0 'Fin du resume next
'ajouter un nouveau module et copier le code
Wbk.VBProject.VBComponents.Add(1).Name = "CodA_Modif"
With Wbk.VBProject.VBComponents("CodACopier").CodeModule
.AddFromString S
End With
End Sub 'fs |
Mais cela ne fonctionne pas, sur la ligne
With ActiveWorkbook.VBProject.VBComponents("CodACopier").CodeModule
j'ai l'erreur 1004 "la méthode "VbProject' a échoué
Partager