Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
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
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Workbook_BeforeClose wird 2x aufgerufen

Workbook_BeforeClose wird 2x aufgerufen
13.03.2006 11:35:53
Jens
Hallo Leute,
ich habe eine Workbook_BeforeClose geschrieben, deren Aktionen ausgeführt werden sollen, unabhängig davon, ob Änderungen in der Datei gespeichert werden oder nicht.
Ich frage also mit einer MsgBox ab, ob der User Änderungen speichern oder verwerfen will, und abhängig davon wird die Variable blnSaveChanges gesetzt; bei Abbrechen wird die Prozedur sofort verlassen (und Cancel auf True gesetzt).
Nach Ausführen einiger Aktionen in Workbook_BeforeClose (nach der MsgBox) hätte ich mir gedacht, dass folgende Code-Zeile das tut, was ich will (nämlich Arbeitsmappe speichern und schließen oder nicht-speichern und schließen):
ThisWorkbook.Close SaveChanges:=blnSaveChanges
Das Problem:
Blöderweise ruft .Close die Workbook_BeforeClose-Methode noch einmal auf... Die VBA-Hilfe meint dazu lapidar:
"Wird eine Arbeitsmappe aus Visual Basic heraus geschlossen, werden keine Auto_schließen-Makros in der Arbeitsmappe ausgeführt." Werden sie aber doch...
Vielen Dank für eure Hilfe!
Jens

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

Betreff
Datum
Anwender
Anzeige
AW: Workbook_BeforeClose wird 2x aufgerufen
13.03.2006 11:50:53
Andreas
Hallo Jens,
probier's mal mit dem Ausschalten der Events, bevor du deine Aktion durchführst:
Application.EnableEvents = False
Problem ist nur, dass du dann die Events auch wieder aktivieren müsstest, und das geht natürlich nicht, wenn die Arbeitsmappe geschlossen wird/ist. Lösung wäre dann, dass du Excel komplett beendest, da beim Neustart von Excel alle Events wieder auf aktiv gesetzt sind. Müsstest halt dann eine Abfrage zwischenschalten vor dem Schließen und darauf hinweisen, dass alle anderen offenen Arbeitsmappen nicht gespeichert werden ...
Grüße
Andreas
AW: Workbook_BeforeClose wird 2x aufgerufen
13.03.2006 11:56:39
Jens
Hallo Andreas,
danke für deine Antwort.
hmm, der Ansatz wird wohl irgendwie funktionieren, ist aber reichlich kompliziert und macht auch nicht wirklich das, was er machen soll (schließt ja alle Arbeitsmappen und nicht nur die eine, die geschlossen werden soll).
Kann mir jemand bei dieser Frage weiterhelfen:
Was ist denn der Grund dafür, dass Excel bei der .Close-Methode das Workbook_BeforeClose-Ereignis erneut aufruft?
Danke und lG,
Jens
Anzeige
AW: Workbook_BeforeClose wird 2x aufgerufen
13.03.2006 12:03:37
Reinhard
Hi Jens,
als workaround,
Private Sub Workbook_BeforeClose()
static schonmal as boolean
if schonmal=true then exit sub
schonmal=true
...

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: Workbook_BeforeClose wird 2x aufgerufen
13.03.2006 12:25:39
Jens
Haut super hin, vielen Dank!!
Jens

85 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige