Sub numero()
Const Depart = 10
Dim t, dico As New Dictionary, i&, max&
dico.CompareMode = TextCompare: max = Depart - 1
t = Range("a1:b" & Cells(Rows.Count, "a").End(xlUp).Row)
For i = 1 To UBound(t)
If Not dico.Exists(CStr(t(i, 1))) Then max = max + 1: dico(CStr(t(i, 1))) = max
t(i, 1) = dico(CStr(t(i, 1)))
Next i
Range("b:b").ClearContents: Range("b1").Resize(UBound(t)) = t
End Sub