S
Stany
Guest
Bonjour à tous,
voici ma situation.
J'ai un claseur de 150 Feuilles. Dont une feuille qui sert de "Modèle".
Je souhaite appliquer les modifications apportées au module de la feuille "Modèle" aux autres feuilles du classeur.
Après diverses recherches dans ce forum voilà ce que j'ai écrit:
Sub MajFeuille()
Dim X As Variant
Dim S As String
For Each X In ActiveWorkbook.Sheets
If X.Name <> "Modèlé" Then
Sheets(X.Name).Select
'Supprime le Code de la feuille à modifier
With ActiveWorkbook.VBProject.VBComponents(Sheets(X.Name).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
'Prend le module de la feuille Modèle
With ActiveWorkbook.VBProject.VBComponents(Sheets("Modèle").CodeName).CodeModule
S = .Lines(1, .CountOfLines)
End With
'Ecrit le module la feuille à modifier
With ActiveWorkbook.VBProject.VBComponents(Sheets(X.Name).CodeName).CodeModule
.AddFromString S
.CodePane.Window.Close
End With
End If
Next X
End Sub
A l'éxécution de cette macro, windows m'annonce une erreur d'application Excel. Donc aucun moyen de debuggage.
Lorsque j'utilise cette macro sans la boucle FOR...NEXT et que je définit par exemple Set X = Sheets("Feuille1"), cela marche très bien.
Ou est mon erreur? le CodePane.Windows.Close peut-être?
Merci
voici ma situation.
J'ai un claseur de 150 Feuilles. Dont une feuille qui sert de "Modèle".
Je souhaite appliquer les modifications apportées au module de la feuille "Modèle" aux autres feuilles du classeur.
Après diverses recherches dans ce forum voilà ce que j'ai écrit:
Sub MajFeuille()
Dim X As Variant
Dim S As String
For Each X In ActiveWorkbook.Sheets
If X.Name <> "Modèlé" Then
Sheets(X.Name).Select
'Supprime le Code de la feuille à modifier
With ActiveWorkbook.VBProject.VBComponents(Sheets(X.Name).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
'Prend le module de la feuille Modèle
With ActiveWorkbook.VBProject.VBComponents(Sheets("Modèle").CodeName).CodeModule
S = .Lines(1, .CountOfLines)
End With
'Ecrit le module la feuille à modifier
With ActiveWorkbook.VBProject.VBComponents(Sheets(X.Name).CodeName).CodeModule
.AddFromString S
.CodePane.Window.Close
End With
End If
Next X
End Sub
A l'éxécution de cette macro, windows m'annonce une erreur d'application Excel. Donc aucun moyen de debuggage.
Lorsque j'utilise cette macro sans la boucle FOR...NEXT et que je définit par exemple Set X = Sheets("Feuille1"), cela marche très bien.
Ou est mon erreur? le CodePane.Windows.Close peut-être?
Merci