Das Makro ermöglicht, die Originalarbeitsmappe zu speichern und eine Sicherheitskopie in einem anderen Laufwerk bzw. Verzeichnis zu erstellen.
Achtung:
Das Makro durchläuft mehrere Schritte:
- Speichern und schließen der Originalarbeitsmappe
- Speichern und öffnen der Sicherheitskopie. Hier ist der Knackpunkt. Stoppt das Makro hier, wird mit der Kopie anstatt dem Original gearbeitet
- Mit Hilfe des Call-Befehls wird die Originalarbeitsmappe wieder geöffnet
- Die Sicherheitskopie wird geschlossen.
Code
Sub DateiDoppeltSpeichern() ' ' Das Makro ermöglicht es, die Originalarbeitsmappe zu speichern und eine Sicherheitskopie in einem anderen Laufwerk bzw. Verzeichnis zu erstellen. ' ' ' legt eine Sicherheitskopie der Arbeitsmappe in einem anderen Verzeichnis an ' Die Variablen lw, lw2, pfad, pfad2 sind entsprechend zu ändern ' Der Name der Sicherheitskopie wird hier "Kopie = "Arbeitsmappe_" & s_Datum & "_" & Format(s_Zeit, "hhmm") & ".xlsm" " festgelegt und ist entsprechend zu ändern ' Dim strOriginal As String ' Bezeichnung der Originaldatei Dim strKopie As String ' Bezeichnung der Kopie Dim str_Datum As String Dim str_Zeit As String Dim i As Integer Const lw = "e:" ' Laufwerk der Originaldatei Const lw2 = "e:" ' Laufwerk der Sicherungskopie Const pfad = "E:\Sicherung" ' Pfad zur Originaldatei Const Pfad2 = "E:\Sicherung\test" ' Pfad zur Kopie ' Will man die Dateibenennung mit Datum und Uhrzeit vornehmen, dann ist ein Zwischenschritt notwendig. Die Uhrzeit wird mit Doppelpunkten (:) ausgegeben. ' Diese Zeichen sind in der Dateibenennung aber nicht erlaubt. str_Datum = Date ' Orndet dem string das Datum zu str_Zeit = Time ' Orndet dem string das Zeit zu strOriginal = ActiveWorkbook.Name ' Name der Originaldatei wird festgelegt strKopie = "Arbeitsmappe_" & str_Datum & "_" & Format(str_Zeit, "hhmm") & ".xlsm" ' Name der Sicherungskopie wird festgelegt. On Error GoTo fehler ' Originaldatei wird gespeichert ChDrive lw ChDir pfad With ActiveWorkbook .SaveAs Filename:=strOriginal, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=False End With ' Sicherungsdatei wird gespeichert ChDrive lw2 ChDir Pfad2 'ActiveWorkbook.SaveAs "Test_Arbeitsmappe_" & s_Datum & "_" & Format(s_Zeit, "hhmm") & ".xlsm", ReadOnlyRecommended:=True With ActiveWorkbook .SaveAs Filename:=strKopie, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=True '.Close End With ' Achtung nachdem alle Sicherung erfolgreich erstellt wurden, ist die SICHERUNGSKOPIE geöffnet. Die ORIGINALDATEI wurde geschlossen. ' Die Originalarbeitsmappe wird geöffnet Call ArbeitsmappeÖffnen ' Schließt die Sicherungskopie, so dass nur die Originalarbeitsmappe geöffnet bleibt Workbooks(strKopie).Close Exit Sub ' Dialog bei Fehlern während des Speicherns fehler: MsgBox "Laufwerk/Verzeichnis nicht gefunden!" & vbCr & "Das Speichern wurde abgebrochen" End Sub Private Sub ArbeitsmappeÖffnen() Const lw = "E:" Const pfad = "E:\Sicherung" Const datei = "20101124_Test.xlsm" ChDrive lw ChDir pfad On Error Resume Next Workbooks.Open datei End Sub
Achtung
Die Sicherungsdatei wird in diesem Beispiel ebenfalls im XLSM-Format abgespeichert. Die Datei enthält also die gleichen Makros wie die Originaldatei. U.U. ist es jedoch sinnvoll, dass die Kopie der Arbeitsmappe für die weitere Bearbeitung keine Makros enthält, da die Funktionen dort nicht gebraucht werden. Für diesen Fall muss die Arbeitsmappe in einem Excel-Format gespeichert werden, dass keine Makros unterstützt. Man greift also auf das Datei-Format XLSX zurück.
Für den Code bedeutet das lediglich eine kleine Änderung. Die sieht aus wie folgt:
... strKopie = "Test_Arbeitsmappe_" & str_Datum & "_" & Format(str_Zeit, "hhmm") & ".xlsx" ... .SaveAs Filename:=strKopie, FileFormat:=xlNormal, Password:="", writerespassword:="", ReadOnlyRecommended:=False, CreateBackup:=True ...
Alle Datei-Formate, die ab Excel 2007 unterstützt werden, können auf der Hilfe-Seite von Microsoft abgerufen werden ➡ office.microsoft.com.

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.
Vielen Dank!