Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1580to1584
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

AutoClose

AutoClose
28.09.2017 16:25:50
Hans-Jürgen
Hallo zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AutoClose
28.09.2017 16:41:39
mmat
Hallo Hans,
das ist alles was du brauchst:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Prüfungen = False Then Cancel = True
End Sub
Übrigens: Das ganze "neumodische Schnickschnack" mit Eigenschaften und Methoden ist mir das erste mal irgend wann Mitte der 80er des vorigen Jahrhunderts begegnet. Das nannte sich damals Objektorientierte Programmierung :-D
vg, MM
AW: AutoClose
28.09.2017 16:44:32
UweD
Hallo
in ein Normales Modul ganz nach oben
Public TMP As Boolean


in DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
TMP = False
Call Prüfungen
If Not TMP Then
Cancel = True
MsgBox "Speichern abgebrochen"
End If
End Sub



' dein bestehendes Makro ergänzen
Sub Prüfungen()
'mach was
'If ok then
TMP = True
'end if
End Sub



Autoclose brauchst du nicht
LG UweD
Anzeige
AW: AutoClose
28.09.2017 18:04:39
Hans-Jürgen
Hallo Uwe,
danke, das war es! Den Code in "DieseArbeitsmappe", das hat es gebracht.
Viele Grüße
Hans-Jürgen
AW: gern geschehen owt
29.09.2017 08:44:39
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen