ObjWord.Selection.Find

Résolu
lolo1612 Messages postés 8 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 30 mars 2009 - 17 mars 2009 à 10:56
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 17 mars 2009 à 11:36
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mars 2009 à 11:36
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
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mars 2009 à 11:26
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
0
lolo1612 Messages postés 8 Date d'inscription lundi 16 mars 2009 Statut Membre Dernière intervention 30 mars 2009
17 mars 2009 à 11:33
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
0
Rejoignez-nous