Kein automatisches Backup über Button VBA
Hallo zusammen,
ich habe folgenden VBA Code für ein automatischen Backup
dieser funktioniert leider nur über den Button Speichern (Disk)
er soll aber bei diesen Code ein Backup erstellen, das macht er leider nicht
warum geht es nicht????
ich habe folgenden VBA Code für ein automatischen Backup
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 = "C:\Users\.....\Desktop\Backup\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "ddmmyyyy_hhmm")
FileBackupName = SavePath & FileName & "_" & FileUsername & "_" & FileDate & "." & FileExtension
ActiveWorkbook.SaveCopyAs FileBackupName
End Sub
er soll aber bei diesen Code ein Backup erstellen, das macht er leider nicht
Sub Schließen()
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 341624
Url: https://administrator.de/contentid/341624
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
Hi,
ich weiß es nicht. Aber ...
Wenn Du da schon ne "Sub Schließen" hast, warum rufst Du da nicht direkt diese Backup-Routine auf?
E.
ich weiß es nicht. Aber ...
Wenn Du da schon ne "Sub Schließen" hast, warum rufst Du da nicht direkt diese Backup-Routine auf?
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Backup
End Sub
Sub Backup()
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 = "C:\Users\.....\Desktop\Backup\"
FileName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
FileExtension = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)
FileUsername = Environ("UserName")
FileDate = Format(Now, "ddmmyyyy_hhmm")
FileBackupName = SavePath & FileName & "_" & FileUsername & "_" & FileDate & "." & FileExtension
ActiveWorkbook.SaveCopyAs FileBackupName
End Sub
Sub Schließen()
Backup
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End Sub
Der Grund dafür ist das du im BeforeSave-Event quasi eine unendliche Schleife baust denn Zeile 16 triggert das Event BeforeSave erneut und erneut, und so diese Zeile nicht abgeschlossen wird. Deswegen setze vor dem Save-Befehl (Zeile 16) im Event ein
Und nach der Zeile ein
Gruß
Application.EnableEvents = False
Application.EnableEvents = True