Dateien eines bestimmten Zeitraums löschen

Bild

Betrifft: Dateien eines bestimmten Zeitraums löschen
von: Kenji
Geschrieben am: 13.08.2015 08:27:49

Hallo zusammen,
von einer Excel Datei wird per Makro alle 15 Minuten eine Sicherungskopie in einem Ordner gespeichert.

Jetzt = Now()
    Datumzeitstempel = Year(Date) & Format(Month(Date), "00") & Format(Day(Date), "00")
    Datumzeitstempel = Datumzeitstempel & "-" & Format(Hour(Jetzt), "00") & Format(Minute(Jetzt) _
 _
, "00") & Format(Second(Jetzt), "00")
    ThisWorkbook.SaveCopyAs "...Pfad..." & Datumzeitstempel & ".xlsm"
ZeitZuSpeichern = Now + TimeSerial(0, 15, 0)  'hier Intervall einstellen (h, m, s)
    Application.OnTime ZeitZuSpeichern, "Speichern"

Nun wird der entsprechende Ordner nach einer gewissen Zeit sehr voll. Bisher muss ich den Ordner also händisch immer wieder leeren, was ich gerne automatisieren würde. Grundsätzlich ist es ja keine große Sache per Makro Dateien zu löschen, aber wie genau bekomme ich das hin, dass er alle Dateien bis auf die letzten 3 alle 3 Stunden automatisch löscht?
Grüße
Kenji

Bild

Betrifft: AW: Dateien eines bestimmten Zeitraums löschen
von: Nepumuk
Geschrieben am: 13.08.2015 09:23:29
Hallo,
würde ich so machen:

Public Sub AlteLoeschen()
    Const FOLDER_PATH As String = "E:\" 'Anpassen !!!!!!!!!!
    Dim astrFiles() As String, strFile As String
    Dim ialngCounter As Long, ialngIndex As Long
    strFile = Dir$(FOLDER_PATH & "*.xlsm")
    Do Until strFile = vbNullString
        ialngCounter = ialngCounter + 1
        Redim Preserve astrFiles(1 To ialngCounter)
        astrFiles(ialngCounter) = strFile
        strFile = Dir$
    Loop
    For ialngIndex = 1 To ialngCounter - 3
        Call Kill(PathName:=FOLDER_PATH & astrFiles(ialngIndex))
    Next
End Sub

Den Zeitstempel für den Dateinamen kannst du einfacher zusammenbauen:
Datumzeitstempel = Format(Now, "yyyymmdd-HhNnSs")

Gruß
Nepumuk

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Dateien eines bestimmten Zeitraums löschen"