Sub test1()
Dim Mots, couleurs
Mots = Array("voiture", "de sport") 'l'array des mots
couleurs = Array(vbRed, vbGreen) 'l'array des couleurs
PutWordColorOnCell Mots, couleurs, Feuil1.[A4] 'appel de la fonction qui va faire le job
End Sub
'
Sub test2()
Dim Mots, couleurs
Mots = Array("toto", "titi", "riri", "fifi") 'l'array des mots
couleurs = Array(vbRed, vbGreen, vbBlue, vbMagenta) 'l'array des couleurs
PutWordColorOnCell Mots, couleurs, Feuil1.[A5] 'appel de la fonction qui va faire le job
End Sub
'
Sub test3()
Dim Mots, couleurs
Mots = Array("ca fait", "mal", "a la", "tete", "ce jargon") 'l'array des mots
couleurs = Array(vbRed, vbGreen, vbBlue, vbMagenta, vbYellow) 'l'array des couleurs
PutWordColorOnCell Mots, couleurs, Feuil1.[A6] 'appel de la fonction qui va faire le job
End Sub
Sub test4() '3 expressions et seulement les deux premieres couleurs
Dim Mots, couleurs
Mots = Array("moi j'aime pas ", "les couleurs", "ca pique les yeux") 'l'array des mots
couleurs = Array(RGB(255, 100, 0), 1654236) 'l'array des couleurs
PutWordColorOnCell Mots, couleurs, Feuil1.[A7] 'appel de la fonction qui va faire le job
End Sub
Sub test5() ' couleur une sur deux
Dim Mots, couleurs
Mots = Array("moi j'aime pas ", "les couleurs", "ca pique les yeux", "noir c'est noir il n'y a plus d'espoir") 'l'array des mots
couleurs = Array(RGB(255, 100, 0), 0, 16534836, 0) 'l'array des couleurs
PutWordColorOnCell Mots, couleurs, Feuil1.[A8] 'appel de la fonction qui va faire le job
End Sub
'
'
Function PutWordColorOnCell(wordArray, colorArray, cel As Range)
Dim I&, X&, C&
cel = Join(wordArray)
For I = LBound(wordArray) To UBound(wordArray)
X = InStr(1, cel.Value, wordArray(I), vbTextCompare)
If I > UBound(colorArray) Then C = vbBlack Else C = colorArray(I)
cel.Characters(X, Len(wordArray(I))).Font.Color = C
Next
End Function