ObjWord.Selection.Find [Résolu]

Signaler
Messages postés
8
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
30 mars 2009
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Salut à tous,
Une question. Je recherche dans un document word les champs NOM et PRENOM, que j'aimerais changer de manière dynamique.
J'ai fait cette routine mais je n'arrive pas à "annuler" la selection
Au final, j'ai Martin à la place du champ PRENOM
Des suggestions

With ObjWord.Selection.Find
    .Forward = True
    .ClearFormatting
    .MatchWholeWord = True
    .MatchCase = False
    .Wrap = wdFindContinue
    .Execute FindText:="NOM"
End With
    ObjWord.Selection = "Martin"
   
With ObjWord.Selection.Find
    .Forward = True
    .ClearFormatting
    .MatchWholeWord = True
    .MatchCase = False
    .Wrap = wdFindContinue
    .Execute FindText:="PRENOM"
End With
    ObjWord.Selection = "Laurent"

3 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
pas confondre
With Word.ActiveDocument.Range.Find
et
With ObjWord.Selection.Find

tu bornes toi même le secteur de recherche, en utilisant ObjWord.Selection
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
67
inutile de dupliquer le tout...

With Word.ActiveDocument.Range.Find
.Forward = True
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Wrap = wdFindContinue

.Execute "NOM", ReplaceWith:="Martin"
.Execute "PRENOM", ReplaceWith:="Laurent"
End With
Messages postés
8
Date d'inscription
lundi 16 mars 2009
Statut
Membre
Dernière intervention
30 mars 2009

Malheureusement, le resultat est le suivant :
MARTIN PRENOM
et non
MARTIN Laurent

Quand j'inverse les 2 lignes Execute du code, le resultat est :
NOM LAURENT

With ObjWord.Selection.Find
    .Forward = True
    .ClearFormatting
    .MatchWholeWord = True
    .MatchCase = False
    .Wrap = wdFindContinue
    .Execute "NOM", ReplaceWith:="Martin"
    .Execute "PRENOM", ReplaceWith:="Laurent"
End With