ich möchte gerne eine freigegebe Datei ohne Rückfragen beim Schließen speichern.
Da es vorkommen kann, dass mehrere User gleichzeitig die Datei schließen (und daher die Datei zeitweise gesperrt sein kann) hab ich mir folgenden Code gebastelt:
Public Sub Workbookspeichern()
On Error GoTo Ende
Application.EnableEvents = False
ThisWorkbook.Save
Application.EnableEvents = True
Exit Sub
Ende:
Application.EnableEvents = True
On Error GoTo 0
End Sub
'---------------------------------
Public Sub Dateispeichern()
Dim Zeit As Single
Dim i As Integer
On Error GoTo Ende
i = 0
Workbookspeichern
While (Not ThisWorkbook.Saved) And (i Zeit + 1 ' max. 1 Sekunden warten
Loop
Workbookspeichern ' jetzt nochmal versuchen (max 30 x)
Wend
If Not ThisWorkbook.Saved Then MsgBox ("Datei konnte nicht gespeichert werden. ")
Exit Sub
Ende:
On Error GoTo 0
End Sub
'---------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True ' neu
ActiveWorkbook.Close SaveChanges:=False ' neu
'ActiveWorkbook.Close False ' alternativ ausprobiert
End Sub
'---------------------------------
Das dumme ist, dass ich immer noch bei einem User den Speicherdialog bekomme. Wenn ich da "Nein" wähle, ist trotzdem alles gespeichert. Der Code funktioniert also, nur warum kommt trotzdem noch der Speicherdialog am Ende? Liegt es evtl. an der Freigabe?
Wie kann ich die Speichermeldung endgültig loswerden?
Oder wie könnte ich das Speichern bei freigegebenen Dateien evtl. eleganter / besser / sicherer lösen?
Viele Grüße
Mathias