AW: Geschlossene Mappe Speichern mit Zeitinterwall
23.07.2012 23:28:17
fcs
Hallo Andy,
du kannst per Ereignismakro unmittelbar vor dem Speichern eine Kopie der Datei in einem anderen Verzeichnis speichern.
'Ereigbnis-Makro im VBA-Editor unter "DieseArbeitsmappe" der Datei
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strPath As String
strPath = "C:\Users\Public\Test\Data" 'Verzeichnis für die Kopie
If LCase(Me.Path) LCase(strPath) Then
Me.SaveCopyAs "C:\Users\Public\Test\Data" & "\" & Me.Name
End If
End Sub
Wenn du die Kopieraktion nur alle 5 Tage automatisch ausführen willst, dann muss das Speicherdatum zusätzlich geprüft werden.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strPath As String, strDatei As String, datDatum As Date
strPath = "C:\Users\Public\Test\Data" 'Verzeichnis für die Kopie
If LCase(Me.Path) LCase(strPath) Then
strDatei = strPath & "\" & Me.Name
If Dir(strDatei) "" Then
datDatum = CDate(Format(VBA.FileDateTime(strDatei), "YYYY-MM-DD"))
If Date - datDatum >= 5 Then
Me.SaveCopyAs strDatei
End If
Else
Me.SaveCopyAs strDatei
End If
End If
End Sub
Wenn du deine Datei makrofrei halten willst, dann könntest du auch eine kleine BAT (Batch-Datei-Schreiben) oder andere Script-Datei schreiben, die die Datei kopiert. Diese Datei richtest du dann in der Aufgabenplanung aus den Windows-Zubehör-Systemprogrammen so ein, dass sie regelmäßig zum gewünschten Zeitpunkt ausgeführt wird.
Gruß
Franz