[COLOR="DarkSlateGray"]Sub trier()
Dim sDat As String, aDat As String, nDat As Integer, kDat As Integer, sDst As String, aDst As String
Dim i As Long, j As Long, k As Long, di As Date, dj As Date, tmp, oDat()
sDat = "Feuil1" [COLOR="SeaGreen"]' Feuille de données.[/COLOR]
aDat = "A2" [COLOR="SeaGreen"]' Première cellule de données.[/COLOR]
nDat = 3 [COLOR="SeaGreen"]' Nombre de colonnes de données.[/COLOR]
kDat = 2 [COLOR="SeaGreen"]' Rang de la colonne contenant les dates à ordonner, DANS LA PLAGE de données.[/COLOR]
sDst = "Feuil1" [COLOR="SeaGreen"]' Feuille de destination.[/COLOR]
aDst = "M2" [COLOR="SeaGreen"]' Première cellule de destination.[/COLOR]
With Sheets(sDat)
oDat = .Range(aDat).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row - .Range(aDat).Row + 1, nDat).Value
For i = 2 To UBound(oDat, 1)
di = DateSerial(2008, Month(oDat(i, kDat)), Day(oDat(i, kDat)))
For j = i - 1 To 1 Step -1
dj = DateSerial(2008, Month(oDat(j, kDat)), Day(oDat(j, kDat)))
If di >= dj Then Exit For
For k = 1 To nDat
tmp = oDat(j + 1, k)
oDat(j + 1, k) = oDat(j, k)
oDat(j, k) = tmp
Next k
dj = di
Next j
Next i
Sheets(sDst).Range(aDst).Resize(.Cells(.Rows.Count, 1).End(xlUp).Row - .Range(aDat).Row + 1, nDat).Value = oDat
End With
End Sub[/COLOR]