Sub testmodifmacro()
Dim Wbk As Workbook, NomProc$, NomModule$, LiModif&, TxtModif$
Application.ScreenUpdating = False
For i = Sheets(1).Range("A65536").End(xlUp).Row To 1 Step -1
fname = Sheets(1).Cells(i, 1).Value & ".xls"
Workbooks.Open Filename:=fname
Set Wbk = Workbooks(fname)
NomProc = "MacroAModifier"
NomModule = "Module1"
LiModif = 5
TxtModif = " MsgBox a,,testeur"
'modifie la ligne 5 de la macro "MacroAModifier"
ModifMacro Wbk, NomProc, NomModule, LiModif, TxtModif
Workbooks(fname).Save
Workbooks(fname).Close
Workbooks("modifclasseur.xls").Activate
Next
Application.ScreenUpdating = True
End Sub
Sub ModifMacro(Classeur As Workbook, NomMacro$, Module$, Ligne&, Modif$)
Dim LiDeb&
With Classeur.VBProject.VBComponents(Module).CodeModule
LiDeb = .ProcBodyLine(NomMacro, 0)
.DeleteLines LiDeb + Ligne, 1
.InsertLines LiDeb + Ligne, Modif
End With
End Sub