Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Rechercher et remplacer dans word

2 réponses
Avatar
curieux9
Bonjour,

Je commence à coder en vba pour un projet, à tester. Mon objectif est de remplacer des termes "cibles" dans un word par un autre terme. J'ai fouillé un peu sur le net et j'ai essayé de coder ce que j'ai trouvé.

Voici la partie du code qui ne semble pas faire ce que je lui demande:

With wd.Selection.Find
.ClearFormatting
.Text = "nom"
.Replacement.Text = "pseudo"
.Execute Replace:=wdReplaceall
End With

D'après ce que j'avais compris, le code devrait se mettre à fouiller la sélection pour trouver toutes les mentions de "nom" et remplacer chacune de celles-ci par "pseudo".
Malheureusement à la place, il sélectionne la première mention de "nom" et ne remplace rien.
Avec des boucles, selection cut et insertafter, j'arrive à un résultat à peu près équivalent mais j'aimerais savoir pourquoi ces ajouts me sont nécessaires.

Je vous remercie d'avance pour votre aide.

2 réponses

Avatar
JièL
Hello,
Le 29/09/2016 à 15:34, curieux9 a écrit :
Bonjour,
Je commence à coder en vba pour un projet, à tester. Mon objectif est de
remplacer des termes "cibles" dans un word par un autre terme. J'ai fouillé un
peu sur le net et j'ai essayé de coder ce que j'ai trouvé.

Juste un conseil : utilisez l'enregistreur de macro.
Même si il génère une tonne de code inutile, il donne une bonne idée de
la sainte axe à utiliser
Voici la partie du code qui ne semble pas faire ce que je lui demande:
With wd.Selection.Find
.ClearFormatting
.Text = "nom"
.Replacement.Text = "pseudo"
.Execute Replace:=wdReplaceall
End With
D'après ce que j'avais compris, le code devrait se mettre à fouiller la
sélection pour trouver toutes les mentions de "nom" et remplacer chacune de
celles-ci par "pseudo".
Malheureusement à la place, il sélectionne la première mention de "nom" et ne
remplace rien.
Avec des boucles, selection cut et insertafter, j'arrive à un résultat à peu
près équivalent mais j'aimerais savoir pourquoi ces ajouts me sont nécessaires.

ce qui me fait tiquer c'est le "wd."
Chez moi votre code fonctionne sans le wd car je ne sais pas à quoi il
correspond
--
JièL
Avatar
Geo
Bonjour
Juste un conseil : utilisez l'enregistreur de macro.
Même si il génère une tonne de code inutile, il donne une bonne idée de la
sainte axe à utiliser

Amen !
ce qui me fait tiquer c'est le "wd."
Chez moi votre code fonctionne sans le wd car je ne sais pas à quoi il
correspond

Peut-être un partie du document.
Dans ce cas il vaut mieux faire :
wd.select
et supprimer le wd dans le code.