Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim i As Integer 'déclare la variable i (Incrément)
Dim x As Integer 'déclare la variable x (incrément)
Dim g As Byte 'déclare la variable g (première carcactère à Gauche)
i = 1000 'initialise la variable i
With Sheets("Feuil1") 'prend en compte l'onglet ("Feuil1")
dl = .Cells(Application.Rows.Count, 21).End(xlUp).Row 'définit la dernière ligne éditée de la colonne 21 (U)
g = Left(.Cells(2, 21), 1) 'définit le premier caractère à gauche g de la cellule A2
.Cells(2, 22).Value = IIf(g = 1, "", i) 'place en V2 un vide si g=1 , sinon i
For x = 3 To dl 'boucle de la ligne 2 à dl
If Left(.Cells(x, 21), 1) = g Then 'condition : si le premier caractère à gauche est égal à g
.Cells(x, 22).Value = IIf(g = 1, "", i) 'place en V2 un vide si g=1 , sinon i
Else 'sinon
i = IIf(g = 1, i, i + 1) 'incrémente i si g est différent de 1
g = Left(.Cells(x, 21), 1) 'redéfinit le premier caractère à gauche g
.Cells(x, 22).Value = IIf(g = 1, "", i) 'place en V2 un vide si g=1 , sinon i
End If 'fin de la condition
Next x 'prochaine ligne de la boucle
End With 'fin de la prise en compte de l'onglet "Feuil1"
End Sub