Option Explicit
Private DicABC As Dictionary
Function CodABC(ByVal X As String) As String
Dim T(), L As Long, TSpl() As String
If DicABC Is Nothing Then
Set DicABC = New Dictionary
T = Feuil1.Range(Feuil1.Cells(1, "A"), Feuil1.Cells(&H100000, 2).End(xlUp)).Value
For L = 1 To UBound(T, 1): DicABC(CStr(T(L, 1))) = T(L, 2): Next L: End If
TSpl = Split(X, ",")
For L = 0 To UBound(TSpl)
If DicABC.Exists(TSpl(L)) Then TSpl(L) = DicABC(TSpl(L))
Next L
CodABC = Join(TSpl, ",")
End Function