Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datei als Backup speichern VBA

Forumthread: Datei als Backup speichern VBA

Datei als Backup speichern VBA
31.07.2014 18:39:31
Spenski

hi
ich möchte vor dem ausführen eines makros eine art backup datei abspeichern.
also so
Privat


Sub Backup()
gesuchter code
mein makro
End Sub
ich möchte aber das nicht immer die selbe datei überschrieben wird , sondern immer eine neue angelegt hat . am bestem mit datum und uhrzeit im dateinamen
der Pfad : M:\_PST\BACKUP\
so sollte der dateiname etwa aussehen damit sie im ordner chronologisch geordnet sind
Backup_2014.07.14_07.15.xlsm
ist sowas möglich und wenn ja kann mir da jemand weiterhelfen???
danke fürs lesen
gruss
christian

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei als Backup speichern VBA
31.07.2014 19:20:19
Hajo_Zi
Halo Christian,
benutze doch den Makrorecorder, der liefert da gute Ansätze.
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYY.MM.dd hh.mm") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Anzeige
AW: Datei als Backup speichern VBA
31.07.2014 19:32:25
Spenski
Hallo Hajo
danke dir für deine antwort.
leider ist es nicht ganz das was ich suche. der dateiname ist 100% , genauso wollt ich das.
leider wird jetzt die "original" Datei auch mit umbenannt
aber danke dir dafür , ich schau mal ob ich das mit dem code auch wieder zurückspeichern kann
gruss
christian

Anzeige
AW: Datei als Backup speichern VBA
31.07.2014 19:36:24
Hajo_Zi
Hallo Christian,
ActiveWorkbook.SaveCopyAs Filename:= _
ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYY.MM.dd hh.mm") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
Gruß Hajo

Anzeige
AW: Datei als Backup speichern VBA
31.07.2014 19:49:10
Spenski
bei deinem letzten code spuckt er mir in der letzen zeile n fehler aus.
habs jetzt so gemacht , mit hilfe deines ersten codes.
warscheinlich nicht die schönste lösung aber es funktioniert
Sub backup()
ChDir "M:\_PST\BACKUP"
ActiveWorkbook.SaveAs Filename:= _
ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYY.MM.dd hh.mm") & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"M:\_PST\OriginalDatei.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = True
End Sub
danke und gruss
christian

Anzeige
AW: Datei als Backup speichern VBA
31.07.2014 19:55:36
Hajo_Zi
Hallo Christian,
dann so.
ActiveWorkbook.SaveCopyAs Filename:= _
ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYY.MM.dd hh.mm") & ".xlsm"
Gruß Hajo

AW: Datei als Backup speichern VBA
31.07.2014 19:59:46
Spenski
super
ich danke dir für deine hilfe
schönen abend noch :)

Anzeige
AW: Datei als Backup speichern VBA
01.08.2014 07:56:53
Marcy
Hallo Hanjo,
hilfreiche Antwort.
Das würde ich gerne in Vorlagen einbauen, die ich öfter für Kollegen mache.
Richtig gut, fände ich, wenn in ThisWorkbook.Path ein Unterordner "Backup" wäre.
Ist dieser Ordner nicht vorhanden, sollte beim ersten Ausführen angelegt werden.
Bei allen weiteren Ausführungen des Codes, müsste der Ordner nicht mehr angelegt werden.
Da ich nämlich nie weiß, wo die Kollegen die Datei liegen haben werden, kann ich den Speicherort nicht vorgeben.
Weiterhin fände ich gut, wenn der originale Dateiname bestehen bleibt und \Backup_" & Format(Now, "YYYY.MM.dd hh.mm") & ".xlsm" hinten angehängt wird. So würde die Zuordnung zur originalen Datei bestehen bleiben, sollten verschiedene Vorlagen in dem Ordner liegen.
Oder macht man es ganz anders?
Gruß Marcy

Anzeige
AW: Datei als Backup speichern VBA
01.08.2014 08:10:52
Hajo_Zi
Hallo Marcy,
ich vermute mal Du meinst mich?
Option Explicit
Sub Ordner()
Dim StOrdner As String
StOrdner = Dir(ThisWorkbook.Path & "\Backup", vbDirectory)
If StOrdner = "" Then MkDir ThisWorkbook.Path & "\Backup"
End Sub
Gruß Hajo

Anzeige
AW: Datei als Backup speichern VBA
01.08.2014 08:35:53
Marcy
Entschuldige Hajo,
meine Kollege heisst Hanjo :-(, hatte mit dem eben noch gesprochen und daher vermutlich ein n zu viel gemacht. Wenn ich fünf Namen im Herber Forum nennen müsste, dann wäre Deiner einer der ersten die mir einfallen würde.
Zu Deinem Code.
Prima, Ordner wird anlegt, top.
Am Rest versuche ich mich jetzt mal.
Danke und Gruß aus Asbach, vielleicht bis morgen ;-)
Marcy

Anzeige
;
Anzeige

Infobox / Tutorial

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

  1. Fehler beim Speicherort: Wenn der angegebene Pfad nicht existiert, wird ein Fehler angezeigt. Überprüfe, ob der Ordner "BACKUP" vorhanden ist.

  2. 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.

  3. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige