Retrouver mots dans un texte grâce à une liste de mots

pousske

XLDnaute Nouveau
Bonjour,

Je vais essayer d'être clair :

J'ai une liste d'une centaine de mots sur la feuille 1, et j'ai tapé un très long texte sur la feuille 2.

Est il possible qu' Excel me mette en gras ou en couleur automatiquement (grâce à une formule) les mots du texte répertoriés dans la liste de la feuille 1?

Exemple :

Feuille 1 : Pomme, Poire, Chien, Chat, Maison, Voiture
Feuille 2 : En sortant de ma voiture, j'ai donné une poire à mon chien et une pomme à mon chat avant de rentrer à la maison.

Je voudrais que les mots de la phrase (feuille 2) qui sont écrits dans la feuille 1 se mettent en rouge automatiquement.

On m'a créé un exemple (pièce jointe) sur un autre forum qui est +- ce qu'il me faut. Sauf qu'il me le faut sur 2 feuilles différentes. Et qu'un mot qui se répète doit être colorié chaque fois qu'il apparait.

J'espère avoir été clair.

Merci beaucoup d'avance.
 

Pièces jointes

  • greenfire_v1.xls
    32 KB · Affichages: 53

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Retrouver mots dans un texte grâce à une liste de mots

Bonjour pousske,

remplace ton code par celui-ci:
la phrase à modifier doit se trouver en "A1" de la seconde feuille
Code:
Sub Coloriage()
Dim Cel As Range, CelRef As Range
Dim Pos As Integer
Set CelRef = Sheets(2).Range("A1")
CelRef.Font.ColorIndex = xlAutomatic
For Each Cel In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
    If Not IsError(Application.Match(Cel, Split(CelRef, " "), 0)) Then
        Pos = InStr(1, Sheets(2).Range("A1").Value, Cel.Value, 1)
        CelRef.Characters(Start:=Pos, Length:=Len(Cel.Value)).Font.ColorIndex = 3
    End If
Next Cel
End Sub

à+
Philippe
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Retrouver mots dans un texte grâce à une liste de mots

Bonjour pousske, phlaurent55 :)

Un autre essai:
VB:
Sub Coloriage()
Dim Cel As Range, CelRef As Range
Dim Pos As Integer, F1 As Worksheet, F2 As Worksheet

Set F1 = Sheets("Feuil1"): Set F2 = Sheets("Feuil2")
Set CelRef = F2.Range("D1")
CelRef.Font.ColorIndex = xlAutomatic

For Each Cel In F1.Range("A1:A" & F1.Cells(Rows.Count, 1).End(xlUp).Row)
    For i = 1 To Len(CelRef)
      If Mid(CelRef, i, Len(Cel)) = Cel Then _
        CelRef.Characters(Start:=i, Length:=Len(Cel.Value)).Font.ColorIndex = 3
    Next i
Next Cel
End Sub
 

Pièces jointes

  • pousske-greenfire_v1.xls
    36.5 KB · Affichages: 35

pousske

XLDnaute Nouveau
Re : Retrouver mots dans un texte grâce à une liste de mots

Merci beaucoup à vous 2 !

Et merci à ma pomme pour la pièce jointe c'est exactement ce qu'il me fallait !

Petite question un peu bête : Comment puis je continuer mon texte et revenir à la ligne (Colonne D) tout gardant la macro?

Merci beaucoup !
 

pousske

XLDnaute Nouveau
Re : Retrouver mots dans un texte grâce à une liste de mots

C'est normal, j'ai me suis exprimé dans une langue encore inconnue, je m'en suis bien rendu compte ! :D

Mais j'ai trouvé la solution, y a rien à faire en fait ... :p

A+ et encore merci !
 

Discussions similaires

Réponses
24
Affichages
779
Réponses
16
Affichages
1 K

Statistiques des forums

Discussions
312 203
Messages
2 086 191
Membres
103 152
dernier inscrit
Karibu