Bonsoir,
une nouvelle proposition, qui devrait tenir compte de tes nouvelles demandes.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ind()
Application.EnableEvents = False
dl = Cells(Rows.Count, 1).End(xlUp).Row
tablo = Range("A1").Resize(dl, 1)
ReDim ind(dl)
md = InStr(Target.Address, ":") > 0
For i = LBound(tablo, 1) To UBound(tablo, 1)
If Not md Then
If tablo(i, 1) = Target.Value And i <> Target.Row Then tablo(i, 1) = tablo(i, 1) + 0.1
End If
ind(i) = i
Next i
For i1 = LBound(tablo, 1) To UBound(tablo, 1) - 1
For i2 = i1 + 1 To UBound(tablo, 1)
If tablo(ind(i1), 1) > tablo(ind(i2), 1) Then a = ind(i1): ind(i1) = ind(i2): ind(i2) = a
Next i2
Next i1
For i = LBound(tablo, 1) To UBound(tablo, 1)
Cells(ind(i), 1) = i
Next i
Application.EnableEvents = True
End Sub