Function TriPlages(r As Range)
Dim col%, n&, resu(), dat$()
For Each r In r.Areas
For col = 1 To r.Columns.Count
If IsDate(r(2, col)) Then
n = n + 1
ReDim Preserve resu(1 To n)
ReDim Preserve dat(1 To n)
resu(n) = r(1, col)
dat(n) = Format(r(2, col), "yyyymmddhhmmss") & Format(resu(n), "000000") 'pour classer les ex aequo
End If
Next col, r
tri dat, resu, 1, n
TriPlages = resu 'vecteur ligne
End Function
Sub tri(a, b, gauc, droi) ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
temp = b(g): b(g) = b(d): b(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub