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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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
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.
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.