'patricktoulon
'a appeller a l'open ou par un bouton ou tout autres méthode
'References à activer
' /'''''''''''''''''''''''''''''''''''''''''''''''''''''''\
'< microsoft VisualBasic for Application Extensibility 5.1 >
' \......................................................./
' il faut bien evidemment cocher dans les option d'excel "Acces approve" au model d
' /''''''''''''''''''''''''''''''''''''''''''''''\
'< Acces approuve au model d'object du projet vba.>
' \............................................../
Sub changeeventExpression()
Dim vbcomps, vbcomp, Code$, NewCode$
'collection de modules
Set vbcomps = ThisWorkbook.VBProject.VBComponents
'boucle sur les modules tout type confondu
For Each vbcomp In vbcomps
If vbcomp.Name <> "Module1" Then 'bien sur !!!on evite evidemment de modifier celui de la macro elle même
If vbcomp.CodeModule.CountOfLines > 0 Then
'recupération du code
Code = vbcomp.CodeModule.Lines(1, vbcomp.CodeModule.CountOfLines)
'remplacement d'expression dans le code
NewCode = Replace(Code, "xxx", "yyy")
'effacer le code du module
vbcomp.CodeModule.DeleteLines 1, vbcomp.CodeModule.CountOfLines
'inscription du nouveau code
vbcomp.CodeModule.InsertLines 1, NewCode
End If
End If
DoEvents
Next
End Sub