Function RECHMC2(ByVal Texte As String) As String
Dim Td(), L As Long, C As Long, Ts() As String, P As Long, N As Long, Q As Long
If Dic Is Nothing Then
Set Dic = New Dictionary
Td = [G2:AA2].Resize([G1000].End(xlUp).Row - 1).Value
For L = 1 To UBound(Td, 1)
For C = 2 To UBound(Td, 2)
If IsEmpty(Td(L, C)) Then Exit For
Dic(UCase(Td(L, C))) = Td(L, 1)
Next C, L: End If
Ts = Split(UCase(Texte))
N = -1
For P = 0 To UBound(Ts)
If Dic.Exists(Ts(P)) Then
N = N + 1: Ts(N) = Dic(Ts(P))
For Q = N - 1 To 0 Step -1
If Ts(Q) = Ts(N) Then Exit For
Next Q: If Q >= 0 Then N = N - 1
End If: Next P
If N < 0 Then Exit Function
ReDim Preserve Ts(0 To N)
RECHMC2 = Join(Ts, "-")
End Function