Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1416to1420
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

Sicherheitskopie

Sicherheitskopie
23.03.2015 12:04:03
Holger
Hallo liebes Forum
Ich habe meine Datei unter -- „E:\Dokumente\Lager\Lager1.xlsm“-- gespeichert
Ich habe nun einen neuen Ordner angelegt für Sicherheitskopien
--„E:\Dokumente\Lager\Sicherheitskopie\........“--
Meine Frage besteht darin, ob mir irgendjemand einen Code schreiben kann, dass wenn ich meine „Original Datei“ speicher, dann automatisch eine Sicherheitskopie in den Entsprechenden Ordner abspeichert.
Wie folgt sollte es dann aussehen
„E:\Dokumente\Lager\Sicherheitskopie\Lager1_20150323_1.xlsm“
--Name der Datei mit anschließenden Datum von heute und wie oft schon gespeichert --
Es soll auch, wenn die Datei schon vorhanden ist, eine neue Datei erstellt werden und weiter gezählt werden
Bsp.:
„E:\Dokumente\Lager\Sicherheitskopie\Lager1_20150323_1.xlsm“
„E:\Dokumente\Lager\Sicherheitskopie\Lager1_20150323_2.xlsm“
„E:\Dokumente\Lager\Sicherheitskopie\Lager1_20150323_3.xlsm“
Also es soll immer weiter gezählt werden wenn ich speichere
Kann mir da jemand helfen?
Danke schon einmal im Voraus
Grüße Holger

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sicherheitskopie
23.03.2015 15:39:06
Nepumuk
Hallo,
nimm die Uhrzeit mit in den Dateinamen dann kann das auszählen von Sicherheitskopien entfallen.
Gruß
Nepumuk

AW: Sicherheitskopie
23.03.2015 16:44:16
Michael
Hallo Holger!
Hier mein Ansatz, der Nepomuks Idee "Uhrzeit in den Dateinamen aufnehmen" aufgreift (also kein Zähler für die Speichervorgänge). Hier arbeiten zwei Makros zusammen
Dieses Makro muss in ein allgemeines Modul
Sub SicherungsKopie()
Dim Zusatz As String
Zusatz = "_" & Format(Now(), "yyyymmdd_hh-mm-ss")
ThisWorkbook.Worksheets.Copy
ActiveWorkbook.SaveAs Filename:="E:\Dokumente\Lager\Sicherheitskopie\Lager1" _
& Zusatz & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Close
End Sub
Dieses Makro muss in "DieseArbeitsmappe"
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Success Then SicherungsKopie
End Sub
Passt das für Dich?
LG
Michael

Anzeige
AW: Sicherheitskopie
23.03.2015 17:18:20
Holger
Hallo Michael,
dein Code ist gut,
aber kann man in dahin gehen noch verändern, dass der Code automatisch den Dateiname nimmt
also nicht
E:\Dokumente\Lager\Sicherheitskopie\Lager1 & Zusazt ......
Sonder :
E:\Dokumente\Lager\Sicherheitskopie\“Hier Dokumentenname“ & Zusatz ....
Ich möchte, wenn möglich, den Code auch für andere Dateien verwenden
Danke
Holger

AW: Sicherheitskopie
23.03.2015 17:30:58
Michael
Hallo Holger,
sollte so klappen, probier mal (nur der Code im allgemeinen Modul ist neu):
Sub SicherungsKopie()
Dim Zusatz As String
Dim Datei As String
Zusatz = "_" & Format(Now(), "yyyymmdd_hh-mm-ss")
Datei = Left(.Name, Len(.Name) - 5)
ThisWorkbook.Worksheets.Copy
ActiveWorkbook.SaveAs Filename:="E:\Dokumente\Lager\Sicherheitskopie\" & Datei _
& Zusatz & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Close
End Sub
Falls Du noch mit .xls-Dateiendungen arbeitest (also vor XL-Dateien vor 2007) schneidet dieser Code allerdings den letzten Buchstaben des Dateinamens mit ab (weil ich hier 5 Zeichen von rechts abschneide, das ist bei den neuen Dateien also .xlsx) - hoffe das ist verschmerzbar.
LG
Michael

Anzeige
AW: Sicherheitskopie
23.03.2015 17:34:05
Holger
hallo Michael
ich habe gerade ein neues Problem festgestellt
wenn die Datei speichert, dann speichert es mir aber KEINE andern Makros oder UF
mit ab!
Wie ist das Möglich, oder mache ich etwas falsch?
danke
Holger

AW: Sicherheitskopie
23.03.2015 18:37:09
Nepumuk
Hallo,
AfterSave gibt es erst in Excel 2013.
Teste mal folgendes:
In das Modul "DieseArbeitsmappe":
Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Call Application.OnTime(Now, "SaveCopy")
End Sub

In ein Standardmodul (Menüleiste - Einfügen - Modul):
Option Explicit

Public Sub SaveCopy()
    Const FOLDER_PATH As String = "E:\Dokumente\Lager\Sicherheitskopie\"
    Dim strFilename As String
    With ThisWorkbook
        strFilename = Left$(.Name, InStrRev(.Name, ".") - 1)
        strFilename = strFilename & Format(Now, "_yyyymmddhhnnss") & _
            Right$(.Name, InStrRev(.Name, "."))
        Call .SaveCopyAs(FOLDER_PATH & strFilename)
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Sicherheitskopie
23.03.2015 19:17:58
Holger
hey Nepumuk
so richtig gefällt mir dies nicht, da er vorne und hinten den namen einfügt
es sollte eig nach dem Typ (.xlsm) zu Ende sein, aber es fügt noch einmal den Namen der Datei ein
danke

AW: Sicherheitskopie
23.03.2015 20:06:07
Nepumuk
Hallo,
Wie folgt sollte es dann aussehen
„E:\Dokumente\Lager\Sicherheitskopie\Lager1_20150323_1.xlsm“
--Name der Datei mit anschließenden Datum von heute und wie oft schon gespeichert --
aber kann man in dahin gehen noch verändern, dass der Code automatisch den Dateiname nimmt
Wenn du weißt was du willst, dann sag Bescheid.
Gruß
Nepumuk

Anzeige
AW: Sicherheitskopie
23.03.2015 20:19:11
Nepumuk
Hallo,
jetzt weiß ich was du meinst. Mein Fehler ich hatte mit einem Dateinamen getestet der nur 4 Zeichen hatte. Ändere diese Zeile:
strFilename = strFilename & Format(Now, "_yyyymmddhhnnss") & _
    Right$(.Name, InStrRev(.Name, "."))

so:
strFilename = strFilename & Format(Now, "_yyyymmddhhnnss") & _
    Mid$(.Name, InStrRev(.Name, "."))

Gruß
Nepumuk

Anzeige
AW: Sicherheitskopie
24.03.2015 16:49:29
Holger
Hey Nepumuk
danke dir - jetzt ist es perfekt
grüße Holger

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige