AutoClose
28.09.2017 16:25:50
Hans-Jürgen
ich programmiere auf Arbeit ein kleines VBA-Makro in einer Excel-Datei. Zu meinem Nivau: gelernt über Tastaturaufzeichnung gepaart mit Kenntnissen aus Basic, darauf aufgebaut, aber das ganze "neumodische Schnickschnack" mit Eigenschaften und Methoden ist mir fremd.
Zu meinem Problem: Bevor die Datei geschlossen wird, soll eine Plausibilitätsprüfung durchgeführt werden. Ich habe schon mal im Internet gesurft und zwei Namen von Subs ermittetlt:
AutoClose()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Das erstere ist auf den ersten Blick prima. Doch wenn die Plausibilitätsprüfung fehlschlägt, soll sich die Datei nicht schließen (der Anwender bekommt das entsprechend angezeigt). Aber ganz egal, was ich da in dem IF-Zweig reinschreibe, er macht das Ding trotzdem zu. (ExitSub ist mir so eingefallen, Sendkey "ESC" hatte ich gelesen, hilft nichts.)
Das zweitere ist auf den ersten Blick auch prima, denn ich muss im IF-Zweig nur Cancel=True setzen. Aber mein Problem ist: Die Sub wird gar nicht aufgerufen, wenn ich mit dem "X" schließe.
Meine erste intuitive Lösung, die ineinander zu verschacheln
Sub Auto_Close()
Call Workbook_BeforeClose
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Prüfungen
End Sub
schlug natürlich fehl, weil der Aufruf Workbook_BeforeClose ein Argument braucht.
Meine zweite intuitive Lösung: Jemanden fragen, der sich auskennt ;-))
Ich glaube, dass ich das mit dem Private Sub Workbook_BeforeClose(Cancel As Boolean) irgendwie falsch anwende.
Falls das wichtig ist: Mein Projektexplorer besteht aus dem "Ordner" Excel-Objekten (Tabellen) und dem "Ordner" Module, worin all mein Text auf "Modul1" liegt. (Es sind verschiedene Makros)
Vielen Dank
Hans-Jürgen