Rechercher : dans
Par :

[VB] Macro pour word

Dernière réponse le 18 oct 2008 à 12:09:44 ancelot, le 16 sep 2008 à 17:33:05 
 Signaler ce message aux modérateurs

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

1

Prog44, le 16 sep 2008 à 20:55:45

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

Répondre à Prog44

2

ancelot, le 17 sep 2008 à 09:52:49

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?

Répondre à ancelot

3

Prog44, le 17 sep 2008 à 19:28:16

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 ?

Répondre à Prog44

4

ancelot, le 18 sep 2008 à 00:42:38

ça maaarchhee!!!! Merci beaucoup pour ton aide et ta réactivité!!!

Répondre à ancelot

5

Prog44, le 18 sep 2008 à 13:15:02

Tu as pris quelle solution finalement ?

Répondre à Prog44

6

 débutant, le 18 oct 2008 à 12:09:44

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

Merci d'avance

Répondre à débutant