Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

die zwei neuesten Dateien behalten, Rest löschen

die zwei neuesten Dateien behalten, Rest löschen
04.02.2019 09:15:34
Luisa
Guten Morgen :)
Ich erstelle per VBA ein Backup eines Tabellenblatts. Da das irgendwann sehr viele werden würden, möchte ich immer nur die 2 (oder x) neuesten behalten und die anderen Dateien löschen (bzw. wenn drei (x+1) Dateien existieren, die älteste löschen)
Ich suche nach einem VBA Ansatz mit dem ich das Problem lösen kann. Bei meiner Google Recherche habe ich nur Ansätze gefunden, die Dateien, die älter als eine bestimmte Zeit sind löschen...
Die Dateien sind eindeutig benannt: Backup_*Jahr*_*Monat*_*Tag* und ich weiß, wie man Dateien über einen eindeutigen Namen löscht.
Ein Ansatz würde mir schon mal reichen. Kann selbst noch ein bisschen experimentieren ;)
Danke!
Luisa

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: die zwei neuesten Dateien behalten, Rest löschen
04.02.2019 09:28:12
Daniel
Hallo Luisa,
wenn du eine Möglichkeit gefunden hast, alles bis zu einem Zeitpunkt zu löschen - kannst du dann nicht einfach eine Abfrage machen, ab welchem Datum gelöscht werden soll? Sind dann zwar nicht unbedingt alle Dateien bis auf die letzten Zwei, wäre aber eine Option. Müsstest dann natürlich eine Sicherheit einbauen, dass nur bis zu einem gewissen Datum gelöscht werden darf, damit die neuesten Dateien nicht aus Versehen mit gelöscht werden!
Oder, wenn die Backups in regelmäßigen Abständen erfolgen, könntest du ja den Zeitpunkt, bis zu dem gelöscht werden soll, mit Heute() - X definieren?
Nur kurzes Brainstorming :)
Grüße
Daniel
Anzeige
AW: die zwei neuesten Dateien behalten, Rest löschen
04.02.2019 09:33:40
Luisa
Hallo Daniel (mal Wieder ;D)
Ich habe schon mehrere Abfragen am Ende und will den Nutzer nicht zu spammen.
Hatte grade einen anderen Ansatz, dazu müsste ich aber wissen, wie man die Anzahl der Dateien in einem Ordner ermittelt. Da eine Idee?
Und die Backups erfolgen nicht in regelmäßigen Abständen ;)
Danke!
Anzahl Dateien ermitteln gelöst, älteste Datei?
04.02.2019 10:13:16
Luisa
Hallo Jochen,
Habe schon was einfacheres gefunden:

ordner = "G:\Meine Ablage\Backup\" 'unbedingt mit "\" am Ende
datei = Dir(ordner & "*.*")
While datei  ""
anzahl = anzahl + 1
datei = Dir
Wend
MsgBox anzahl & " Datei(en) gefunden"
Jetzt suche ich nur noch eine Möglichkeit, den Namen der ältesten Datei in dem Ordner herauszufinden.
Anzeige
AW: älteste Datei?
04.02.2019 10:50:47
JoWE
so; habe ich von Phelan XLPH (2009)
Sub FName_oldestFile()
Range("A1") = OldestOrYoungestFile("C:\Daten")
End Sub

Function OldestOrYoungestFile(ByVal strPath As String, _
Optional blnOldest As Boolean = True, _
Optional strFileSuffix As String = "*.*", _
Optional ByVal iRank As Integer = 1) As Variant
Dim strFileName     As String
Dim astrFilename()  As String
Dim dblDatum        As Double
Dim adblDatum()     As Double
Dim intIndex        As Integer
If Right$(strPath, 1)  "\" Then strPath = strPath & "\"
strFileName = Dir(strPath & strFileSuffix)
Do Until strFileName = vbNullString
ReDim Preserve astrFilename(intIndex)
astrFilename(intIndex) = strFileName
ReDim Preserve adblDatum(intIndex)
adblDatum(intIndex) = FileDateTime(strPath & strFileName)
Debug.Print strFileName, FileDateTime(strPath & strFileName)
intIndex = intIndex + 1
strFileName = Dir()
Loop
If intIndex > 0 Then
With WorksheetFunction
If blnOldest Then
dblDatum = .Small(adblDatum, iRank)
Else
dblDatum = .Large(adblDatum, iRank)
End If
strFileName = astrFilename(.Match(dblDatum, adblDatum, 0) - 1)
End With
OldestOrYoungestFile = Array(strFileName, CDate(dblDatum))
End If
End Function
Gruß
Jochen
Anzeige
AW: älteste Datei?
04.02.2019 13:36:21
Luisa
Verstehe nicht so wirklich, was da passiert...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige