Sauvegarde params de recherche

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #16450811
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+
Geo
Le #16450801
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+
Publicité
Poster une réponse
Anonyme