Private Sub CommandButton1_Click()
Dim nl As Long 'déclare la variable nl (Nombre de Lignes)
Dim nc As Byte 'déclare la variable nc (Nombre de Colonnes)
Dim tc() As Variant 'déclare la variable tc(Tableau des Couleurs)
Dim x As Long 'déclare la variable x
nl = Range('A65536').End(xlUp).Row 'définit la variable nl
nc = Range('IV1').End(xlToLeft).Column 'définit la variable nc
ReDim tc(nl - 1) 'dimensionne le Tableau des Couleurs
'récupère la couleur de chaque ligne
For x = 0 To nl - 1 'boucle sur toutes les lignes
tc(x) = Cells(x + 1, 1).Interior.ColorIndex 'définit la couleur de la ligne
Next x 'prochaine ligne
'classe le tableau par date
Range('A1').Sort Key1:=Range('A1'), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'remet les couleurs de chaque ligne
For x = 0 To nl - 1 'boucle sur toutes les valeurs du Tableau de Couleurs
Range(Cells(x + 1, 1), Cells(x + 1, nc)).Interior.ColorIndex = tc(x) 'définit la couleur de la ligne
Next x 'prochaine ligne
End Sub