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.
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
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+
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 ?
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
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+
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