Macro sous Word

Résolu/Fermé
isa26 - 11 oct. 2018 à 00:46
 isa26 - 11 oct. 2018 à 14:49
Je dois faire très souvent des rechercher/remplacer dans un document Word pour mettre en gras certains mots (compris entre deux caractères). J'utilise la fonction rechercher/remplacer et ça marche parfaitement.
Mais j'aurais voulu en faire une macro pour éviter d'avoir à retaper la recherche chaque fois. J'ai donc enregistré ma macro en faisant la manip (qui a très bien marché à ce moment-là) mais la macro ne marche pas. Tout simplement dans la macro, il n'apparait nulle part que le texte doit être remplacé en gras, donc la macro ne fait absolument rien !

Voici le code que j'ai obtenu:

Sub Macro5()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "M*."
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Dans ma manip, j'avais bien choisi dans "remplacer par", "mise en forme police = gras ". J'avais aussi coché "caractères génériques". Pourquoi tout cela n'apparait-il pas dans le code et surtout comment corriger cette macro pour qu'elle marche ?

Merci d'avance !
A voir également:

2 réponses

m@rina Messages postés 20070 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 24 avril 2024 11 271
11 oct. 2018 à 02:50
Bonjour,

Essaie plutôt ça :

Sub RR()
Dim mondoc
Set mondoc = ActiveDocument.Content
mondoc.Find.ClearFormatting
mondoc.Find.Replacement.ClearFormatting
mondoc.Find.Replacement.Font.Bold = True
With mondoc.Find
.Text = "M*."
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
End Sub


Les enregistrements de macro, c'est pas terrible. C'est pratique pour aider.
Cela étant, en principe, une macro enregistre correctement le format pour un RR ainsi que l'utilisation des caractères génériques.

m@rina
1
ça marche !

Merci beaucoup, Marina !
0