Salut,
En modifiant la déclaration de X et en rajoutant un gestion d'erreur .
Sub MajAgentX()
Dim X As worksheet
Dim S As String,Msg$
dim I& 'on déclare i tant qu'on y est
With ActiveWorkbook.VBProject.VBComponents(Sheets("Modèle").CodeName).CodeModule
S = .Lines(1, .CountOfLines) ' Prend le Code Source de la feuille Modèle
End With
I = 1
with Sheets("Feuil1")
While .Cells(I, 1) <> "" 'Liste des feuilles à modifier
on error resume next
Set X = Sheets(.Cells(I, 1).Value)
if err<>0 then
msg=msg & " " .Cells(I, 1).Value
' MAJ Module
else
With ActiveWorkbook.VBProject.VBComponents(x.CodeName).CodeModule
.AddFromString S ' Ecrit le Code de la feuille
End With
end if
I = I + 1
Wend
end with
if len(msg)>0 then msgbox "Erreur de saisie pour " & msg
End Sub
Au lieu d'écrire les 150 noms on peut passer par une boucle sur les feuilles du classeur
Sub MajAgentX()
Dim X As worksheet
Dim S As String
With ActiveWorkbook
with .VBProject.VBComponents(Sheets("Modèle").CodeName).CodeModule
S = .Lines(1, .CountOfLines) ' Prend le Code Source de la feuille Modèle
End With
for each x in .worksheets
if x.name <>"Modèle" then
With .VBProject.VBComponents(x.CodeName).CodeModule
.AddFromString S ' Ecrit le Code de la feuille
End With
end if
next x
end with
End Sub
A+++