Sub Bouton1_QuandClic()
Dim data As New Collection
Dim tablo()
Dim i As Integer
Dim c As Range
'crée une collection sans doublons des codes de la colonne B
For Each c In Range('b2:b' & Range('b65536').End(xlUp).Row)
On Error Resume Next
data.Add c, CStr(c)
On Error GoTo 0
Next c
ReDim tablo(1 To data.Count, 1 To 2)
'renvoi la collection dans un tableau à 2 dimensions
'colonne1 = le code
'colonne2=un chiffre d'incrémentation
For i = 1 To data.Count
tablo(i, 1) = data(i)
tablo(i, 2) = 1
Next i
'compare chaque ligne de la colonne B avec le tableau
'si le code est trouvé dans le tableau, renvoi en colonne D, le code
'et le numéro de la 2ème colonne du tableau.
'puis incrémente ce chiffre
For Each c In Range('b2:b' & Range('b65536').End(xlUp).Row)
If Not c = '' Then
For i = 1 To UBound(tablo)
If c = tablo(i, 1) Then
Cells(c.Row, 'D') = c & Format(tablo(i, 2), '000')
tablo(i, 2) = tablo(i, 2) + 1
End If
Next i
End If
Next c
End Sub