knuefi
Goto Top

Kein automatisches Backup über Button VBA

Hallo zusammen,

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
dieser funktioniert leider nur über den Button Speichern (Disk)
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
warum geht es nicht????

Content-ID: 341624

Url: https://administrator.de/contentid/341624

Ausgedruckt am: 25.11.2024 um 05:11 Uhr

emeriks
Lösung emeriks 26.06.2017 um 07:51:29 Uhr
Goto Top
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?
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
E.
133417
133417 26.06.2017 aktualisiert um 10:46:49 Uhr
Goto Top
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
Application.EnableEvents = False
Und nach der Zeile ein
Application.EnableEvents = True
Gruß