Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.EnableEvents = False
[A3].CurrentRegion.Columns(1).Insert xlToRight 'insertion d'une colonne auiliaire
[A3] = 1
With [A3].CurrentRegion.Resize(, 4)
.Columns(1).DataSeries 'numérotation
.Sort .Columns(2), xlAscending, .Columns(3), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
.Columns(4) = "=IF(R[-1]C[-2]<>RC[-2],IF(RC[-1]="""","""",RC[-1]),R[-1]C)"
.Columns(4) = .Columns(4).Value 'supprime les formules
.Sort .Columns(1), xlAscending 'ordre initial
.Columns(1).Delete xlToLeft 'suppression de la colonne auiliaire
.Cells(1, 3) = ""
End With
Application.EnableEvents = True
End Sub