Sub Colorer2()
Dim TabPh() As Variant
Dim TabPré() As Variant
Dim DicoPré As Object
Set DicoPré = CreateObject("Scripting.dictionary")
deb = Timer
With Sheets("Prénoms")
TabPré = .Range("A1").CurrentRegion.Value
For i = LBound(TabPré, 1) To UBound(TabPré, 1)
clé = TabPré(i, 1)
If Not DicoPré.exists(clé) Then DicoPré.Add clé, i
Next i
End With
With Sheets("Phrase")
LastLine = .Range("B" & .Rows.Count).End(xlUp).Row
TabPh = .Range("B2:C" & LastLine).Value
For i = LBound(TabPh, 1) To UBound(TabPh, 1)
For Each clé In DicoPré.keys
'MsgBox clé
If UCase(Trim(TabPh(i, 1))) = UCase(clé) Or InStr(1, UCase(TabPh(i, 1)), " " & UCase(clé) & " ") <> 0 Or InStr(1, UCase(TabPh(i, 1)), UCase(clé) & " ") <> 0 Or InStr(1, UCase(TabPh(i, 1)), " " & UCase(clé)) <> 0 Then
TabPh(i, 2) = clé
Exit For
End If
Next clé
Next i
.Range("B2:C" & LastLine) = TabPh
End With
MsgBox "Opération terminée en " & Timer - deb & " s"
End Sub