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

Sauvegarde params de recherche

2 réponses
Avatar
Jean-François Colas
Hello le groupe,

Je voudrais, par l'intermédiaire d'une macro, appliquer l'attribut Texte
masqué à toutes les occurrences d'une chaîne de caractères. Mais j'aimerais
aussi que ma macro ne modifie pas les paramètres de recherche que j'utilise
manuellement, ou alors qu'elle sache les restaurer.

Je parviens à utiliser l'objet Selection pour la recherche, ce qui me permet
de modifier directement le texte trouvé. Mais alors je ne sais pas
sauvegarder les paramètres antérieurs de recherche.

Par ailleurs, je parviens à faire une recherche de texte sans utiliser
l'objet Selection, ce qui me permet effectivement de ne pas modifier les
paramètres dans la boîte de dialogue de recherche. Mais je n'ai alors pas
encore le moyen de repérer les emplacements de la chaîne cherchée pour
pouvoir en modifier les caractéristiques.

Bref, j'ai l'impression d'avoir deux briques que je ne parviens pas à
agencer.

Auriez-vous une piste pour faire le raccord?

Merci d'avance,
J.-F.

2 réponses

Avatar
Geo
Bonjour à Jean-François Colas qui nous a écrit :

Bref, j'ai l'impression d'avoir deux briques que je ne parviens pas à
agencer.

Auriez-vous une piste pour faire le raccord?



Il faut cracher dans ses mains avant de prendre la truelle, c'est bien
connu.

Un début de piste, mais je n'ai pas la fin.
Une recherche se fait avec l'objet Find, il suffirait donc de la
mémoriser avant et le restituer après votre remplacement.

Donc :
Dim Param As Find
Set Param = Selection.Find

avant votre :
Selection.Find.ClearFormatting

Pour le restituer, je n'ai pas trouvé, sauf élément par élément par
exemple :
Selection.Find.ClearFormatting
With Selection.Find
.Text = Param.Text
.Replacement.Text = Param.Replacement.Text
.Forward = Param.Forward
.Wrap = Param.Wrap

End With

Mais on n'en sort pas.
Peut-être aurez-vous l'idée complémentaire ?

--
A+
Avatar
Geo
Re

une autre piste :
Ne pas toucher au Selection.Find en utilisant une plage pour la
recherche :

Dim MaPlage As Range
Set MaPlage = ActiveDocument.Range
MaPlage.Find.ClearFormatting
With MaPlage.Find
.Text = "MonTexteAMasquer"
...
End With

--
A+