Sub CoulCharactere()
Dim oRegExp As Object, oMatches As Object, R As Object
Dim Tmot(), Tcoul(), C As Range
Dim Motif As String, i As Long, Chaine As String
With Cells(1, 1): Chaine = .Text: .Font.ColorIndex = xlAutomatic: End With
Set R = Range("A3:A5")
ReDim Tmot(1 To R.Rows.Count): ReDim Tcoul(1 To R.Rows.Count)
For Each C In R
i = i + 1
Tmot(i) = C.Text
Tcoul(i) = C.Font.Color
Motif = Motif & C.Text & "|"
Next C
Motif = "(" & Left(Motif, Len(Motif) - 1) & ")"
Set oRegExp = CreateObject("vbscript.regexp")
With oRegExp
.Global = True
.ignorecase = True
.Pattern = Motif
If .test(Chaine) Then
Set oMatches = .Execute(Chaine)
For i = 0 To oMatches.Count - 1
Cells(1, 1).Characters(Start:=oMatches(i).firstindex + 1, _
Length:=oMatches(i).Length + 1).Font.Color = Application.Index(Tcoul, Application.Match(oMatches(i).Value, Tmot, 0))
Next i
End If
End With
End Sub