Userform-X-Schaltfläche zum Beenden
19.02.2020 10:17:22
Sven
ich habe ein Makro, mit welchem der Anwender ausschließlich im beim Start der Arbeitsmappe angezeigten Userform arbeitet.
Da die Anwender darauf trainiert sind, eine "Anwendung" durch das X oben rechts zu beenden, machen sie das in diesem Fall auch. Damit wird aber ja lediglich das Userform ausgeblendet und nicht die Mappe geschlossen. Da möglicherweise noch nicht alles gespeichert ist und der Anwender die Arbeitsmappe auch manchmal doppelt auf hat, habe ich ein großes Chaos.
Der beste Weg wäre, dass der Anwender zum Nutzen der vorhandenen "Beenden"-Schaltfläche (die alle Fehler ausräumt) gezwungen würde, indem es kein X gebe. Das scheint aber nicht so einfach realisierbar, weswegen ich mich an diesen Workaround versucht habe:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Schließen über x verhindern:
If CloseMode = vbFormControlMenu Then
Cancel = True
Call ufMessage("", "Um einen Datenverlust zu verhindern, schließen Sie die Anwendung _
bitte über die 'Beenden'-Schaltfläche.", 3)
End If
End Sub
Die Folge ist, dass das Userform zwar nicht geschlossen und der Anwender informiert wird, aber irgendwie komme ich in einen Zustand, der Fehler verursacht. Und diese kann ich dooferweise auch nicht mehr durch den Debugger lokalisieren. Die Mappe scheint nicht mehr "ganz geöffnet" zu sein.Hat jemand eine Idee, wie ich, wenn ich es schon nicht ausblenden, dass X direkt auf die "Beenden"-Schaltfläche "umleiten" kann?
Grüße
Sven