Bonsoir Michel, Lecardip et tout le forum
Michel, j'étais justement sur la même idée que toi, avec le travail sur la recherche du classeur en moins.
Cependant, pour remplacer les mots, j'utilise ce que tu prenais dans ta première version, la fonction Replace. Pas besoin de faire une boucle sur tous les caractères.
Sub Patch()
Dim AncienNom As String
Dim NouveauNom As String
Dim val As String
Dim Feuille As Object
Dim i As Integer
Dim Fichier As String
Fichier = "NomDuClasseur"
AncienNom = "Critères"
NouveauNom = "Critère"
For Each Feuille In Workbooks(Fichier").VBProject.VBComponents
For i = 1 To Feuille.codemodule.CountOfLines
val = Feuille.codemodule.Lines(i, 1)
val = Replace(val, AncienNom, NouveauNom)
Feuille.codemodule.ReplaceLine i, val
Next i
Next Feuille
End Sub
Voilà, je n'apporte pas grand chose de plus que toi.
Bonne soirée
Laurent.