Bonsoir,
en imaginant la liste en colonne A et commençant en ligne 2 et une numérotation de 1 à X :
Sub TestLRD()
' on arrête de mettre à jour l'écran
Application.ScreenUpdating = False
' définition des variables
Dim Ligne, Cpt, Cel, Résultat
' on commence en ligne 2
Ligne = 2
' le compteur des identifiant est à 0
Cpt = 0
' boucle indéfinie
Do
' s'il n'y a plus de nom de client alors on sort de la boucle
If Cells(Ligne, 1) = "" Then Exit Do
' résultat vaut le nombre de fois que la valeur de la cellule testée existe "au dessus"
Résultat = Application.WorksheetFunction.CountIf(Range("A1:A" & Ligne), Cells(Ligne, 1))
' si résultat = 1 c'est la première fois que l'on tombe sur cette valeur
If Résultat = 1 Then
' la cellule d'à côté prend la valeur de Cpt +1
Cells(Ligne, 2) = Cpt + 1
' on incrémente Cpt
Cpt = Cpt + 1
' si la valeur existe plus d'une fois
Else
' on cherche dans la colonne "au dessus" la première cellule contenant cette valeur
Set Cel = Range("A1:A" & Ligne - 1).Find(Cells(Ligne, 1))
' si on en a bien trouvé une alors la cellule d'à côté de la cellule testée prend la valeur de la cellule d'à côté de la cellule trouvée
If Not Cel Is Nothing Then Cells(Ligne, 2) = Cel.Offset(, 1)
End If
' on teste la ligne suivante
Ligne = Ligne + 1
Loop
End Sub
@ bientôt
LouReeD