Private Sub Workbook_Open()
If Me.Name Like "*-*-*-*-*" Then Exit Sub
Dim chemin$, nom$, ext$, x$, dat As Date, fichier$, a(), n%
chemin = Me.Path & "\"
nom = Me.Name
ext = Mid(nom, InStrRev(nom, "."))
x = Len(nom) - Len(ext)
nom = Left(nom, x)
dat = FileDateTime(Me.FullName) 'date/heure du dernier enregistrement
Me.SaveCopyAs chemin & nom & Format(dat, " dd-mm-yy hh-mm-ss") & ext
fichier = Dir(chemin & nom & "*-*-*-*-*.xlsm")
While fichier <> ""
ReDim Preserve a(n) 'base 0
a(n) = CDate(Mid(fichier, x + 2, 9) & Replace(Mid(fichier, x + 11, 8), "-", ":"))
If a(n) <> "" Then n = n + 1
fichier = Dir
Wend
tri a, 0, UBound(a)
'---on ne garde que les 5 derniers fichiers---
For n = 0 To UBound(a) - 5
Kill chemin & nom & Format(a(n), " dd-mm-yy hh-mm-ss") & ext
Next
End Sub
Sub tri(a, 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
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub