Macro Word pour repérage de lignes en couleur dans un texte en noir
docEPS01
Messages postés2Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention18 septembre 2007
-
18 sept. 2007 à 18:25
docEPS01
Messages postés2Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention18 septembre 2007
-
18 sept. 2007 à 20:23
Bonjour,
je cherche à faire une macro Word pour réaliser les opérations suivantes :
Dans un fichier de plusieurs centaines de pages constitué de lignes séparées par des sauts de paragraphes et dont certaines lignes sont en couleur (exemple : rouge)
- repérer ces lignes (j'ai utilisé Ctrl f avec mise en forme : couleur de police : rouge)
- aller au début de la ligne repérée et y ajouter une série de caractères reconnaissables (par exemple ###)
- sélectionner la ligne ainsi modifiée et en changer la couleur (couleur automatique)
L'objectif final sera de pouvoir filtrer les lignes repérées dans Excel
Voici le code que j'ai obtenu :
Selection.Find.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="###"
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Color = wdColorAutomatic
End Sub
Cette macro ne fonctionne pas correctement puisqu'elle ajoute les ### quelle que soit la couleur de la ligne.
Quelqu'un sait-il pourquoi?
Par ailleurs, comment faire une boucle pour répéter l'opération sur tout le fichier ?
Si quelqu'un peut m'indiquer le code d'une macro qui supprimerait tout le texte qui n'est pas de la couleur désirée, ça sera encore plus simple et je suis preneur.
Merci d'avance
A voir également:
Macro Word pour repérage de lignes en couleur dans un texte en noir
docEPS01
Messages postés2Date d'inscriptionmardi 18 septembre 2007StatutMembreDernière intervention18 septembre 2007 18 sept. 2007 à 20:23
J'ai trouvé le moyen pour que ça fonctionne une fois (il n'y avait pas de référence à la couleur dans ma version initiale) :
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorRed
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.HomeKey Unit:=wdLine
Selection.TypeText Text:="###"
Selection.HomeKey Unit:=wdLine
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Font.Color = wdColorAutomatic
End Sub
Maintenant, je voudrais mettre ça dans une boucle pour traiter tout mon
fichier, mais je ne sais vraiment pas comment on fait. Merci d'avance
pour votre aide.