[VB] Macro pour word

Bonjour,

J'espère qu'un VB Master passera par là. Je suis très novice sur VB et devrais créer une macro Word qui recherche un et colore toutes les occurences de ce mot en rouge.

(dans le texte: "Un pigeon picore le blé dont l'autre pigeon ne veut pas", la macro colorera 'pigeon' en rouge).

Merci beaucoup pour votre aide
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. J'ai essayé mais cela ne marche pas : pouvez-vous me détailler, ligne par les lignes, le code utilisé ?

    Merci d'avance
    1. contexte 1 : tu connais d'avance la liste des mots à rechercher, tu peux les implanter dans un tableau de type string :
      -------------
      dim mots(100) as string

      'affectation des mots
      mots(1)="pigeon"
      mots(2)="voiture"
      ...
      mots(100)="trottoir"

      for i=1 to 100

      ' là, tu mets le code que l'on a vu dans le programme précédent
      ' le texte sera balayé pour chacun des mots du tableau
      next i

      contexte 2 : tu ne connais pas les mots à l'avance, c'est l'utilisateur qui les saisit --> Il faut te servir d'un formulaire dans lequel une zone de texte permettra à l'utilisateur de saisir le mot ou la liste de mots séparés d'une virgule.

      quand l'utilisateur clique sur le bouton <valider>, tu lances le programme vu précédemment.

      Ca te va ?
      1. ça maaarchhee!!!! Merci beaucoup pour ton aide et ta réactivité!!!
    2. Voici une solution :

      Sub colorie_pigeon()
      Dim i, pos1, pos2 As Integer
      Dim vrange As Range

      With ActiveDocument
      For i = 0 To .Characters.Count - 1
      If i < .Characters.Count Then pos1 = i
      If pos1 + 6 <= .Characters.Count Then
      pos2 = pos1 + 6
      Else
      pos2 = pos1
      End If
      Set vrange = ActiveDocument.Range(pos1, pos2)

      If vrange.Text = "Pigeon" Or vrange.Text = "pigeon" Then
      vrange.Font.Color = wdColorRed
      End If
      Next i
      End With

      End Sub
      1. Merci Prog44 pour ta réponse.

        Ta solution marche mais me pose problème car je devrai faire ça pour plus d'une centaine de mots.

        J'ai refléchi au faite à une solution mais j'arrive pas à la coucher en code:

        Avec la fonction recherche de word, chercher le mot (La fonction selectionne automatiquement e mot lorsqu'elle le trouve. Avec cette sélection, appliquer arrière pan rouge. Suivant.

        Tu penses que c faisable?