Hallo Peter_a00871,
wenn ich dir verrate dass die Arbeitsmappe aus knapp 200 Tabellenblätter und X-Macros besteht und ca. 8 MB groß ist und ich NULL-Ahnung vom VBA habe klingt dass gut für mich was du geschrieben hast.
Ich habe einmal den ges. Code hier:
Option Explicit
Private cfile, fso, datum, zeit, stunden, minuten, sekunden, file_name, base_name, backup_file
Private Sub Workbook_Activate()
Call prcStartTimer
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call prcStartTimer
End Sub
Private Sub Workbook_BeforeXmlExport(ByVal Map As XmlMap, ByVal Url As String, Cancel As Boolean)
End Sub
'Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'Call prcStartTimer
'End Sub
Private Sub Workbook_Deactivate()
Call prcStopTimer
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Call prcStartTimer
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Call prcStartTimer
End Sub
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Call prcStartTimer
End Sub
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call prcStartTimer
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Call prcStartTimer
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call prcStartTimer
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
Call prcStartTimer
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
Call prcStopTimer
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call prcStartTimer
Cancel = True
Application.EnableEvents = False
If SaveAsUI = True Then
cfile = Application.GetSaveAsFilename(ActiveWorkbook.Name) & „xlsm“
If cfile <> False Then
ActiveWorkbook.SaveAs Filename:=cfile
End If
Else
ActiveWorkbook.Save
End If
ActiveWorkbook.Save
Application.EnableEvents = True
Set fso = VBA.CreateObject(„Scripting.FileSystemObject“)
datum = Date
zeit = Time
stunden = Left$(zeit, 2)
minuten = Mid$(zeit, 4, 2)
sekunden = Right$(zeit, 2)
zeit = stunden & minuten & sekunden
file_name = ActiveWorkbook.FullName
base_name = fso.GetBaseName(ActiveWorkbook.Name)
backup_file = „N:\01 Leitung\05 Austausch\SicherungBSM“ & base_name & „" & Date & "“ & zeit & „.xlsm“
Call fso.CopyFile(file_name, backup_file)
End Sub
Der Pfad: N:\01 Leitung\05 Austausch\SicherungBSM\ für die Kopie ist richtig. Darauf haben auch jeder die Berechtigung des Zugriffes.
Danke