[VBA Word]-Parcours du document

blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   -  
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je souhaite parcourir le document courant (en commençant par le début) afin de faire des recherches de lettres particulières (ou de groupes de lettres) pour leur appliquer une mise en forme particulière, mais je ne sais pas par quel bout prendre le problème.

J'ai bien essayé avec les sélections, mais je ne m'en sors pas.

Quelqu'un aurait une idée pour la boucle à faire ?

Merci d'avance
A voir également:

2 réponses

ConsoMalin
 
Voici un moyen de procéder :
- Outils > Macro > Nouvelle macro
- tu effectues la modif de texte souhaitée
- tu arrêtes la macro => ça te génère le code
- ensuite tu vas sous Visual Basic (Alt F11) et tu bricoles le code comme tu veux

Voici un exemple qui remplace tous les "ou" en les mettant en gras :

Sub Macro1()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = True
With Selection.Find
.Text = "ou"
.Replacement.Text = "ou"
.Forward = True
.Wrap = wdFindContinue
.Format = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Merci mais ce ne n'est pas exactement ce que je souhaite faire. Le coup de l'enregistreur de macro n'est pas assez complet pour enregistrer mes actions.

Imagine que je veuille souligner les 'ph' en début mot dans un texte, en même temps que je mets en rouge les 'f' en début de mot, ça ne va pas le faire du tout...
0
ConsoMalin
 
Dans ce cas tu peux utiliser les fonctions Selection.MoveLeft et Selection.MoveRight qui permettent de déplacer le curseur vers la gauche ou vers la droite dans le texte courant (regarde le guide pour la syntaxe exacte : les attributs Unit et Count)
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > ConsoMalin
 
J'ai déjà testé, mais il me semble que c'est pour étendre la sélection à gauche ou à droite, pas pour récupérer le caractère courant...
0
ConsoMalin > blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui mais tu récupères la sélection au fur à mesure par la commande Selection.EndOf

Tu trouveras un exemple que j'ai fait sur :
http://aimag.free.fr/Extraction_emails.doc
0
blux Messages postés 27104 Date d'inscription   Statut Modérateur Dernière intervention   3 359 > ConsoMalin
 
merci, je vais creuser avec cet exemple...
0