Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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

Maximal 5 Sicherungskopien

Maximal 5 Sicherungskopien
15.05.2016 14:58:31
Oisse
Hallo Zusammen,
folgenden Code verwende ich zum Erstellen einer Sicherungskopie, der auch einwandfrei funkioniert:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim SavePath As String
Dim FileName As String
Dim FileExtension As String
Dim FileDate As String
Dim FileBackupName As String
Dim FileUsername As String
SavePath = ThisWorkbook.Path & "\Backup\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "YYYYmmdd_hhmmss")
FileBackupName = SavePath & FileName & "_" & FileUsername & "_" & FileDate & "." &  _
FileExtension
ActiveWorkbook.SaveCopyAs FileBackupName
End Sub

Allerdings werden mir ja jetzt unzählige Backups erstellt, was nicht gut ist.
Kann man das auf eine bestimmte Anzahl begrenzen, sodass lediglich die letzten 5 Backups behalten werden und die vorherigen gelöscht werden? Wenn ja, bitte wie?
Gruß
Oisse

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maximal 5 Sicherungskopien
15.05.2016 15:57:44
Daniel
Hi
ergänze den Code mal so:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim SavePath As String
Dim FileName As String
Dim FileExtension As String
Dim FileDate As String
Dim FileBackupName As String
Dim FileUsername As String
Dim Datei As String
Dim DatAlt As String
Dim DateiLösch As String
Dim x As Long
Dim Zähler As Long
SavePath = ThisWorkbook.Path & "\Backup\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "YYYYmmdd_hhmmss")
'--- letztes Backup löschen
x = Len(FileName & "_" & FileUsername & "_") + 1
DatAlt = "ZZZ"
Datei = Dir(SavePath & FileName & "_" & FileUsername & "_*." & FileExtension)
Do While Datei  ""
Zähler = Zähler + 1
If Mid(Datei, x)  4 And Datei  "" Then Kill SavePath & DateiLösch
FileBackupName = SavePath & FileName & "_" & FileUsername & "_" & FileDate & "." & _
FileExtension
ActiveWorkbook.SaveCopyAs FileBackupName
End Sub
der Code löscht immer das älteste Backup, so dass die Anzahl der Backups konstant bleibt.
allerdings wird nur das Backup gelöscht, wenn mindestens 5 vorhanden sind.
wenn schon mehr da sind und es genau 5 sein sollen, dann müsstest du die überzähligen einmalig von Hand löschen
ist jetzt nicht getestet.
Gruß Daniel

Anzeige
AW: Maximal 5 Sicherungskopien
15.05.2016 16:54:31
Oisse
Hallo Daniel,
ich bin, wie immer begeistert.
Vielen herzlichen Dank.
Gruß
Oisse

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige