Hallo Andreas,
…
möchte ich eine automatische Sicherung generieren.
Und zwar sollte eine Kopie (täglich) mit Datumsendung in ein
anderes Verzeichnis eingefügt werden.
Ich stelle es mir so vor:
C:\Alle\Werte\Originaldatei.xls
kopie/Spiegel in
D:\Auswertung\ Originaldatei_01.03.2010.xls
Mein Vorschlag:
Beim Schliessen der Originaldatei wird jedesmal automatisch eine Kopie erstellt. Das kann mehrmals am Tag passieren, wobei dann eine ggf. schon vorhandene Kopie des Tages überschrieben wird.
Für das Datum im Dateinamen sollte dabei eine Schreibweise ohne Punkte gewählt werden, da mehr als 1 Punkt im Dateinamen bei manchen Funktion zu Problemen führen kann.
Das nachfolgende Makro muss im VBA-Editor unter „DieseArbeitsmappe“ der Datei eingefügt werden.
Die Alternative wäre per Windows-Aufgabenplaner/Taskscheduler irgendwann nach Feierabend mit Scriptanweisungsdatei eine Kopie zu erstellen. Dazu muss dann aber der Rechner angeschaltet bleiben.
Gruß
Franz
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
Dim sPfad As String
sPfad = "D:\Auswertung" 'Verzeichnis für Tageskopien
'Prüfung, ob Kopie
If ThisWorkbook.Path = sPfad Then
'keine Kopie einer Tageskopie erstellen
Else
'Tageskopie der Datei erstellen
Application.StatusBar = "Tageskopie der Datei wird erstellt"
With ThisWorkbook
.SaveCopyAs Filename:=sPfad & "\" & Left(.Name, InStrRev(.Name, ".") - 1) \_
& "\_" & Format(Date, "YYYY\_MM\_DD") \_
& Right(.Name, Len(.Name) - InStrRev(.Name, ".") + 1)
End With
Application.StatusBar = False
End If
End Sub