Sub TriGroupes()
'Application.ScreenUpdating = False
'--- tri chaque groupe
lignedéb = 3
NbLignes = [A65000].End(xlUp).Row
i = lignedéb
Do While i <= NbLignes
Cells(i, 1).CurrentRegion.Sort Key1:=Cells(i, 1)
i = Cells(i, 1).CurrentRegion.Rows.Count + i + 1
If i > NbLignes Then Exit Do
Loop
'--- tri général
NbCol = 12
Columns("A:A").Offset(0, NbCol).Insert Shift:=xlToRight
i = lignedéb
Do While i <= [A65000].End(xlUp).Row + 1
temp = Cells(i, 1)
Cells(i, 1).Offset(0, NbCol) = temp
i = i + 1
Do While Cells(i, 1) <> "" And i <= [A65000].End(xlUp).Row
Cells(i, 1).Offset(0, NbCol) = temp
i = i + 1
Loop
Cells(i, 1).Offset(0, NbCol) = temp: i = i + 1
Loop
Range(Cells(lignedéb, 1), Cells([C65000].End(xlUp).Row, NbCol + 1)).Sort Key1:=Cells(lignedéb, 1).Offset(, NbCol), Order1:=xlAscending, Header:=xlNo
[A:A].Offset(0, NbCol).Delete Shift:=xlToLeft
End Sub