Parcourir tous les modules et remplacer un texte

Hello Forum,

Quelqu'un saurait-il comment parcourir un projet VBA en entier (tous les modules) , cherchant et remplaçant une valeur donnée (sans forcément demander à l'utilisateur) et le tout par macro exclusivement ?

Merci beaucoup.

Yeshua.

Bonjour,

CTRL+H > cocher Projet en cours

ric

Hello Ric,

Merci beaucoup. Je souhaitais la version macro directement ^^

Bie à toi,

Y.

Bonjour Yeshua, ric

N'oublie pas de cocher cette case

acces macro

Pour remplace XXXX par ZZZZ

Sub remplacer()
'Nécéssite d'activer la référence "Visual basic For Application Extensibility 5.3"
    For n = 1 To ActiveWorkbook.VBProject.VBComponents.Count
        With ActiveWorkbook.VBProject.VBComponents(n).CodeModule
            For i = 1 To .CountOfLines
                If .Lines(i, 1) Like "*XXXX*" Then
                    nouveau = .Lines(i, 1)
                    nouveau = Replace(nouveau, "XXXX", "ZZZZ")
                    .ReplaceLine i, nouveau
                End If
            Next
        End With
    Next
End Sub

Même ce module remplacera XXXX par ZZZZ ce qui permet de contrôler !!

Même ce module remplacera XXXX par ZZZZ ce qui permet de contrôler !!

Au final, je ne sais pas si c'est une bonne idée.

Mieux vaut mettre cette macro dans un module dénommé remplacement et éviter de l'appliquer à lui-même !

Sub remplacer()
    modifierMacro "XXXX", "ZZZZ"
End Sub

Sub modifierMacro(avant As String, apres As String)
'Nécéssite d'activer la référence "Visual basic For Application Extensibility 5.3"
    For n = 1 To ActiveWorkbook.VBProject.VBComponents.Count
        With ActiveWorkbook.VBProject.VBComponents(n).CodeModule
            If .Name <> "remplacement" Then
                For i = 1 To .CountOfLines
                    If .Lines(i, 1) Like "*" & avant & "*" Then
                        modif = .Lines(i, 1)
                        modif = Replace(modif, avant, apres)
                        .ReplaceLine i, modif
                    End If
                Next
            End If
        End With
    Next
End Sub

Bonjour Yeshua, ric

N'oublie pas de cocher cette case

Bonjour,

juste une remarque en passant, il peut le faire de son coté, par contre coté Utilisateur c'est déjà plus difficile

"cherchant et remplaçant une valeur donnée (sans forcément demander à l'utilisateur)"

juste une remarque en passant, il peut le faire de son coté, par contre coté Utilisateur c'est déjà plus difficile

oui, mais c'est dépendant du fichier, donc si le fichier est partagé il emporte ses options

edit / quoique, tu as sans doute raison, il s'agit de paramètres propres au poste

Rechercher des sujets similaires à "parcourir tous modules remplacer texte"