[VBA Word]-Parcours du document

Fermé
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 - 6 mai 2009 à 13:31
blux Messages postés 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 - 6 mai 2009 à 16:05
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

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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289
6 mai 2009 à 14:25
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
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289 > ConsoMalin
6 mai 2009 à 15:16
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024
6 mai 2009 à 16:01
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 26001 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 avril 2024 3 289 > ConsoMalin
6 mai 2009 à 16:05
merci, je vais creuser avec cet exemple...
0