ich administriere eine Datei, die von einer Handvoll Personen genutzt wird. Da sich auf diese Art immer mal wieder Fehler einschleichen, lasse ich per VBA einfach bei jedem Speichervorgang parallel ein Backup wegsichern. Nun würde ich diese Arbeitsmappe gern freigeben, dabei funktioniert das Makro aber nicht mehr. Habt ihr eine Idee, wie ich das Problem lösen kann?
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim WB As Workbook
Dim BackupFileName As String
Dim OK As Boolean
Const sPath As String = "J:\Wirtschaftlichkeit\Wirtschaftlichkeit von Vorhaben- und Projekten\ _
Archiv\Sponsorziele_Backup\"
If TypeName(ActiveWorkbook) = "Nothing" Then Exit Sub
Set WB = ThisWorkbook
BackupFileName = Left(WB.Name, Len(WB.Name) - 5)
BackupFileName = sPath & BackupFileName & " " & Format(Now, "ddmmyy_HHmmss") & ".xlsm"
OK = False
On Error GoTo NotAbleToSave
With WB
.Save
.SaveCopyAs BackupFileName
OK = True
End With
NotAbleToSave:
Set WB = Nothing
If Not OK Then
MsgBox "Konnte kein Backup speichern!", vbExclamation, ThisWorkbook.Name
End If
End Sub
Hinweis: Das kurzzeitige Setzen eines exklusiven Zugriffs im Code ist für mich keine Alternative, da dadurch alle anderen Nutzen aus der Arbeitsmappe geworfen werden.