Backup-Datei speichern mit VBA in Excel
Schritt-für-Schritt-Anleitung
Um ein automatisches Backup deiner Excel-Datei vor der Ausführung eines Makros zu erstellen, kannst du den folgenden VBA-Code verwenden. Dieser Code speichert eine Sicherungskopie in einem festgelegten Ordner mit Datum und Uhrzeit im Dateinamen:
Sub Backup()
Dim backupPath As String
backupPath = "M:\_PST\BACKUP\Backup_" & Format(Now, "YYYY.MM.dd_hh.mm") & ".xlsm"
' Sicherungskopie erstellen
ActiveWorkbook.SaveCopyAs Filename:=backupPath, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Dieser Code erstellt eine Backup-Datei, die nicht die Originaldatei überschreibt. Stelle sicher, dass der Pfad "M:_PST\BACKUP\" existiert, bevor du das Makro ausführst.
Häufige Fehler und Lösungen
-
Fehler beim Speicherort: Wenn der angegebene Pfad nicht existiert, wird ein Fehler angezeigt. Überprüfe, ob der Ordner "BACKUP" vorhanden ist.
-
Umbenennung der Originaldatei: Wenn du ActiveWorkbook.SaveAs
verwendest, wird die Originaldatei umbenannt. Stattdessen solltest du ActiveWorkbook.SaveCopyAs
verwenden, um die Originaldatei nicht zu verändern.
-
Falsches Datumsformat: Achte darauf, dass das Datumsformat in der Format
-Funktion korrekt ist. Verwende YYYY.MM.dd_hh.mm
, um sicherzustellen, dass die Dateien chronologisch sortiert werden.
Alternative Methoden
Eine andere Möglichkeit, ein Backup zu erstellen, ist die Verwendung des Makrorecorders. Du kannst den Makrorecorder aktivieren und die Schritte manuell ausführen, um den VBA-Code automatisch zu generieren. Dies gibt dir auch eine gute Grundlage, um den Code anzupassen.
Praktische Beispiele
Hier ist ein Beispiel, das einen Unterordner für Backups erstellt, falls dieser noch nicht existiert:
Sub CreateBackupFolder()
Dim folderPath As String
folderPath = ThisWorkbook.Path & "\Backup"
If Dir(folderPath, vbDirectory) = "" Then
MkDir folderPath
End If
' Backup speichern
ActiveWorkbook.SaveCopyAs Filename:=folderPath & "\Backup_" & Format(Now, "YYYY.MM.dd_hh.mm") & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Dieses Beispiel prüft, ob der Unterordner "Backup" vorhanden ist, und erstellt ihn gegebenenfalls, bevor das Backup gespeichert wird.
Tipps für Profis
-
Verwendung von createbackup:=false
: Wenn du die SaveAs
-Methode nutzt, achte darauf, createbackup:=false
zu verwenden, um keine unerwünschten Backup-Dateien zu erzeugen.
-
Automatisierung: Du kannst das Backup-Makro so einstellen, dass es automatisch beim Öffnen der Datei ausgeführt wird, um sicherzustellen, dass immer die neueste Version gesichert wird.
-
Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinem Code, um mögliche Probleme beim Speichern der Datei abzufangen.
FAQ: Häufige Fragen
1. Wie kann ich den Speicherort für die Backup-Datei ändern?
Du kannst den Pfad in der backupPath
-Variable anpassen, um einen anderen Speicherort für die Backup-Datei anzugeben.
2. Ist es möglich, mehrere Backups in einem einzigen Durchlauf zu erstellen?
Ja, du kannst den Backup-Code mehrfach innerhalb eines Makros aufrufen, um verschiedene Versionen der Datei zu sichern.
3. Wie kann ich sicherstellen, dass der Originaldateiname erhalten bleibt?
Verwende ActiveWorkbook.Name
in Kombination mit dem Datum, um den Originaldateinamen beizubehalten und nur das Datum hinzuzufügen.
4. Welche Excel-Version benötige ich für diese Funktionen?
Die oben genannten VBA-Funktionen sind in Excel 2007 und späteren Versionen verfügbar.