Excel VBA - Mettre des mots en rouge dans des cellules
Matchevall
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Je suis embété car je ne sais pas vraiment programmer des macros et j'ai une tache qui est répétitive et qui je suis sur pourrait être automatisée.
Pour faire simple : Je travaille sur un glossaire. J'ai deux colonnes A et B, dans la colonne A j'ai des mots et dans la colonne B j'ai leur définition. J'aimerais pouvoir identifier les mots dans les cellules de la colonnes B qui ont déja une définition dans mon glossaire (colonne A).
Petit exemple concret :
Colonne A Colonne B
Arbre Plante qui contient des branches et des feuilles...
Feuille Partie d'une arbre. Se trouvent au bout des branches....
Branche Fait partie d'une arbre. Au bout se trouve des feuilles....
Dans ce cas la macro devrait m'identifier les mots arbre, branche et feuille dans chacune des définitions de la colonne B et mettre ces mots en rouge.
Est-ce possible de programmer ca ?
Merci pour votre aide,
Je vous souhaite une bonne journée !
Je suis embété car je ne sais pas vraiment programmer des macros et j'ai une tache qui est répétitive et qui je suis sur pourrait être automatisée.
Pour faire simple : Je travaille sur un glossaire. J'ai deux colonnes A et B, dans la colonne A j'ai des mots et dans la colonne B j'ai leur définition. J'aimerais pouvoir identifier les mots dans les cellules de la colonnes B qui ont déja une définition dans mon glossaire (colonne A).
Petit exemple concret :
Colonne A Colonne B
Arbre Plante qui contient des branches et des feuilles...
Feuille Partie d'une arbre. Se trouvent au bout des branches....
Branche Fait partie d'une arbre. Au bout se trouve des feuilles....
Dans ce cas la macro devrait m'identifier les mots arbre, branche et feuille dans chacune des définitions de la colonne B et mettre ces mots en rouge.
Est-ce possible de programmer ca ?
Merci pour votre aide,
Je vous souhaite une bonne journée !
2 réponses
-
Bonjour,
Sub motsCouleur() Dim derlig As Long, lig As Long, p As Long Dim mots As Variant, ptrMots As Long, c As Range Application.ScreenUpdating = False ' création dictionnaire mots = Application.Transpose(Application.Index(Range("A2", [A65000].End(xlUp)).Value, , 1)) ' mise en couleur derlig = Cells(Rows.Count, 2).End(xlUp).Row For Each c In Range("B2", [B65000].End(xlUp)) c.Font.ColorIndex = xlAutomatic For ptrMots = 1 To UBound(mots) p = InStr(LCase(c.Value), LCase(mots(ptrMots))) Do While p > 0 With c.Characters(Start:=p, Length:=Len(mots(ptrMots))) .Font.ColorIndex = 3 End With p = InStr(p + Len(mots(ptrMots)), c, ptrMots, vbTextCompare) Loop Next ptrMots Next c Application.ScreenUpdating = False End Sub
Si tu as beaucoup de mots ça peut prendre un peu de temps...
https://www.cjoint.com/?BKtrgs80x99
eric
-
Tu dois pouvoir bricoler un truc avec des formules texte non ?