Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

BACKUP von Excel-Datei beim Speichern

BACKUP von Excel-Datei beim Speichern
01.12.2022 08:12:06
Excel-Datei
Hallo,
ich habe für mein "Problem" (nicht wirklich ein Problem) die so wirklich richtige Lösung bisher nicht gefunden. Habe gegoogelt und es gab einige Vorschläge.
Aber vielleicht hat hier jemand einen schlanken VBA-Code mit dem ich das Vorhaben verwirklichen kann.
Ich möchte beim Speichern meiner Excel-Datei eine Kopie in einem anderen Verzeichnis erstellen. Diese soll als Sicherheitskopie (auch für andere Kollegen) dienen.
Die Originaldatei (mit dem Makro) wird natürlich eine xlsm-Datei sein. Die Sicherheitskopie soll allerdings ohne Makto gespeichert werden, also als xlsx-Datei.
DIe Sicherheitskopie soll den Namen der Original-Datei plus YYYY-MM-DD_hh:mm:ss (der Speicherung) erhalten.
Und...jetzt bin ich unverschämt...ich hätte von diesem Makro gerne auch die Version dass die Sicherungskopie beim Speichern nicht überschrieben wird sondern
eine weitere Kopie angelegt wird.
Ich würde mich freuen wenn hier jemand die passende Lösung hat.
Vielen Dank im Voraus.
tobi

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 08:17:45
Excel-Datei
Hi Tobi,
das hier versteh ich aus mehreren Gründen nicht:
"...dass die Sicherungskopie beim Speichern nicht überschrieben wird..."
a) wenn du die Kopien im Format Original-Dateiname plus YYYY-MM-DD_hh:mm:ss speicherst, dann hast du doch eh - immer - einen neuen Dateinamen, weil ja die Sekunden im Dateinamen enthalten sind.
b) gearbeitet wird doch - nur - mit der mlsm-Datei, oder?
Mit einer der Kopien kannst du ja nicht mehr arbeiten, weil diese ja keine Makros mehr enthalten - oder versteh ich was falsch?
Ciao
Thorsten
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 08:24:04
Excel-Datei
Hallo Thorsten,
erst einmal vielen Dank für Deine schnelle Rückmeldung.
Also...das Makro soll natürlich die letzte Sicherungskopie immer überschreiben.
Das abgeänderte Makro soll die Sicherungskopie(n) nicht überschreiben, falls aus irgend einem Grund mal jemand das so haben möchte.
Um eventuell einen Verlauf der Änderungen nachzuverfolgen. Ich habe das mal so aufgenommen damit man nicht irgendwann wieder hier im Forum jemanden
damit belästigen muss :-)
Richtig...gearbeitet wird nur mit der xlsm. Die xlsx dienen rein als Sicherungsdateien.
tobi
Anzeige
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 08:28:59
Excel-Datei
häää?
Hi Tobi
Also...das Makro soll natürlich die letzte Sicherungskopie immer überschreiben.
Das abgeänderte Makro soll die Sicherungskopie(n) nicht überschreiben,

Bitte was denn nun?
Wenn letzte Kopie überschrieben wird, dann hast du - immer nur - eine Kopie!
Wie kommst du dann darauf, dass mehrere Kopien vorhanden sind?
Sorry, kann dir jetzt noch weniger folgen.
Ciao
Thorsten
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 09:07:53
Excel-Datei
Vielleicht etwas unglücklich ausgedrückt.
Das Makro soll die Sicherungskopie erstellen und die letzte Sicherungskopie überschreiben.
Nur für den Fall dass irgendwann mal jemand sagt ich möchte ab nicht dass die letzte Sicherung überschrieben wird, sondern möchte quasi den gesamten Verlauf (also alle Sicherungskopien behalten) sollte das ursprüngliche Makro angepasst werden können.
Anzeige
sorry, versteh dich nicht - bitte wer anders owT
01.12.2022 09:36:57
Oberschlumpf
AW: sorry, versteh dich nicht - bitte wer anders owT
01.12.2022 09:57:05
tobi
OK...wusste nicht dass ich mich so kompliziert ausgedrückt habe :-)
Hier vielleicht ein letztes Mal in versuchter Kürze.
1. Ich suche ein Makro welches beim Speichern der Excel-Datei eine Sicherungskopie anlegt.
Bei der nächsten Speicherung wird die vorhande Sicherungskopie von der neuen überschrieben.
2. Ich suche ebenfalls ein Makro welches beim Speichern der Excel-Datei eine Sicherungskopie anlegt.
Bei der nächsten Speicherung wird die vorhandene Sicherungskopie nicht überschrieben, sondern es wird eine zusätzliche, neue Kopie angelegt.
Usw. usf.
Gruß
tobi
Anzeige
Danke für den Hinweis Pierre :-) owT
01.12.2022 16:21:42
tobi
.
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 14:24:05
Excel-Datei
Hallo
sieh dir das mal an.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
Dim Pfad  As String, Ext1 As String, Ext2 As String, Datei As String, Zeitst As String
Dim NName As String, Vers As Boolean
'Version TRUE= mit löschen
Vers = TRUE
Ext1 = ".xlsm"
Ext2 = ".xlsx"
Pfad = "E:\excel\Temp\Test\" '**** mit \
NName = Replace(ThisWorkbook.Name, Ext1, "") 'Name ohne Endung
Zeitst = Format(Now, " YYYY-MM-DD_hh-mm-ss")
Application.EnableEvents = False
'Normales speichern
ThisWorkbook.Save
Application.DisplayAlerts = False ' Warnung abschalten
'Sicherung speichern
ThisWorkbook.SaveAs Filename:=Pfad & NName & Zeitst & Ext2, FileFormat:=xlOpenXMLWorkbook
Application.EnableEvents = True
If Vers  Then
'Löschen alter Sicherungen
Datei = Dir(Pfad & NName & "*" & Ext2)
Do While Len(Datei) > 0
'Alle Löschen, außer Aktuelle
If Datei  NName & Zeitst & Ext2 Then
Kill Pfad & Datei
End If
Datei = Dir() ' nächste Datei
Loop
End If
Err.Clear
Fehler:
Application.EnableEvents = True
Application.DisplayAlerts = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: BACKUP von Excel-Datei beim Speichern
01.12.2022 14:25:18
Excel-Datei
Muss in den Codebeireich von "DieseArbeitsmappe"
Update
01.12.2022 14:52:31
UweD
Das Original wird wieder geöffnet...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error GoTo Fehler
Dim Pfad  As String, Ext1 As String, Ext2 As String, Datei As String, Zeitst As String
Dim NName As String, Vers As Boolean, WB1 As String, WB2 As Workbook
'Version True= mit löschen
Vers = True
Ext1 = ".xlsm"
Ext2 = ".xlsx"
Pfad = "E:\excel\Temp\Test\" '**** mit \
WB1 = ThisWorkbook.FullName
Cancel = True
NName = Replace(Dir(WB1), Ext1, "") 'Name ohne Endung
Zeitst = Format(Now, " YYYY-MM-DD_hh-mm-ss")
Application.EnableEvents = False
'Normales speichern
ThisWorkbook.Save
Application.DisplayAlerts = False ' Warnung abschalten
'Sicherung speichern
ThisWorkbook.SaveAs Filename:=Pfad & NName & Zeitst & Ext2, FileFormat:=xlOpenXMLWorkbook
Set WB2 = ActiveWorkbook 'Das Neue
Application.EnableEvents = True
If Vers Then
'Löschen alter Sicherungen
Datei = Dir(Pfad & NName & "*" & Ext2)
Do While Len(Datei) > 0
'Alle Löschen, außer Aktuelle
If Datei  WB2.Name Then
Kill Pfad & Datei
End If
Datei = Dir() ' nächste Datei
Loop
End If
' Kopie schließen / Original öffnen
Workbooks.Open WB1
WB2.Close False
Err.Clear
Fehler:
Application.EnableEvents = True
Application.DisplayAlerts = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Update
01.12.2022 16:20:42
tobi
Hallo Uwe,
erst einmal vielen Dank für Deine Mühe.
Es funktioniert bei mir fast perfekt. Die Sicherung wird angelegt. Nur beim Wiederöffnen der Originaldatei verabschiedet sich Excel.
Wie müsste ich den Code abändern dass das original nicht wieder geöffnet wird?
Ich glaube dass ist das Problem bei mir...
Danke schgon einmal
tobi
AW: Update
01.12.2022 16:28:57
UweD
dann lösche das hier

Workbooks.Open WB1
und das ggf auch (dann bleibt die Kopie offen

WB2.Close False

AW: Update
01.12.2022 16:29:44
Oberschlumpf
aber das "original" ist deine Datei MIT den Makros - genau DIE Datei MUSS wieder geöffnet werden, weil, sonst, alle Makros = weg!
...nur so zur Info...
Anzeige
AW: Update
01.12.2022 16:43:13
tobi
Ah...ok...das wusste ich nicht.
So weit reichen meine Excel Kenntnisse leider nicht.
tobi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige