Discussion:
Per VBA in BeforeSave das Schließen von Excel verhindern
(zu alt für eine Antwort)
Jörg Eisenträger
2015-03-27 18:03:26 UTC
Permalink
Hallo NG,

in BeforeSave läuft eine Code ab, der mehrere Sekunden dauern kann.
Erst danach wird Close aufgerufen.

Nun haben es einige User geschafft, noch während der Code läuft Excel zu
beenden, wodurch die Ausführung des Codes offensichtlich abgebrochen
wird.

Kann ich irgendwie per VBA verhindern, das Excel geschlossen wird,
solange der Code in BeforeSave nicht beendet wurde?


Gruß
Jörg
--
"One of the best ways to boost your Excel efficiency is also one of the best ways to shoot yourself in the foot."
(Susan Harkins auf www.techrepublic.com/blog/10things/10-mistakes-to-avoid-when-working-with-multiple-worksheets/1961 )
Claus Busch
2015-03-27 18:14:33 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
Nun haben es einige User geschafft, noch während der Code läuft Excel zu
beenden, wodurch die Ausführung des Codes offensichtlich abgebrochen
wird.
wie haben sie denn das gemacht? Normal sind die Mappenfunktionen
gesperrt so lange noch Code läuft und auch umgekehrt.
Kannst du den Code nicht in Before_Close unterbringen?
Für genauere Hilfe müsste ich den Code kennen.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Jörg Eisenträger
2015-03-28 08:59:27 UTC
Permalink
On Fri, 27 Mar 2015 19:14:33 +0100, Claus Busch
Post by Claus Busch
Post by Jörg Eisenträger
Nun haben es einige User geschafft, noch während der Code läuft Excel zu
beenden, wodurch die Ausführung des Codes offensichtlich abgebrochen
wird.
wie haben sie denn das gemacht?
Weiß ich nicht. Ich werde versuchen, es nachzuvollziehen.


Gruß
Jörg
--
"One of the best ways to boost your Excel efficiency is also one of the best ways to shoot yourself in the foot."
(Susan Harkins auf www.techrepublic.com/blog/10things/10-mistakes-to-avoid-when-working-with-multiple-worksheets/1961 )
Claus Busch
2015-03-28 09:42:30 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
Weiß ich nicht. Ich werde versuchen, es nachzuvollziehen.
du könntest in Before_Close abfragen wie groß die Differenz zwischen
JETZT() und dem letzen Speicherdatum ist. Ist die Differenz größer als 5
Minuten, wird Save aufgerufen und dadurch Before_Save erneut gestartet
und das Schließen wird unterbrochen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ThisWorkbook
If Now - .BuiltinDocumentProperties(12) > 5 / 1440 Then
.Save
Cancel = True
End If
End With
End Sub


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Lesen Sie weiter auf narkive:
Loading...