[VBA Word]-Parcours du document

blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   -  
blux Messages postés 2046 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+ Blux           
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

2 réponses

  1. 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
  2. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    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
    1. 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
      1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > 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
      2. ConsoMalin > blux Messages postés 2046 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
      3. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > ConsoMalin
         
        merci, je vais creuser avec cet exemple...
        0