Bonjour Eugène, Steelson,
Steelson a trouvé une solution qui marche très bien, et qui est bien plus simple que celle que je pensais faire ; pour les 2 subs, je propose quand même ces 5 petits changements : déclaration des variables ; gel de la mise à jour de l'écran ; calcul de la dernière ligne une seule fois (dans la variable n) ; .Resize(4) ; compléter les 2 Next avec la variable associée ; ce qui donne :
Option Explicit
Sub trier_date()
Dim i&, j&, n&: Application.ScreenUpdating = 0
n = Cells(Rows.Count, "A").End(xlUp).Row
For i = 4 To n Step 4
For j = i To n Step 4
If Cells(i, "A") > Cells(j, "A") Then
Rows(j).Resize(4).Cut
Rows(i).Insert Shift:=xlDown
End If
Next j
Next i
End Sub
Sub trier_nom()
Dim i&, j&, n&: Application.ScreenUpdating = 0
n = Cells(Rows.Count, "B").End(xlUp).Row
For i = 4 To n Step 4
For j = i To n Step 4
If Cells(i, "B") > Cells(j, "B") Then
Rows(j).Resize(4).Cut
Rows(i).Insert Shift:=xlDown
End If
Next j
Next i
End Sub
si plus tard tu auras beaucoup plus de données et que ce tri bulle devient lent, Steelson pourra sûrement faire un quicksort.
dhany