Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Workbook Before Close

Workbook Before Close
29.09.2004 09:00:08
Erich
Hallo EXCEL-Freunde,
ich habe im Workbook Before Close - Code diverse Befehle, die individuelle
EXCEL-Einstellungen wieder aufheben.
Nun möchte ich in einer Tabelle mit einem CommandButton einen "Ausgang"
aus der Datei ermöglichen, die dann alle Befehle des Workbook Before Close
abarbeitet.
Der Code
GoTo Private Sub Workbook Before Close
geht aber nicht.
Wie kann ich mit dem CB auf Workbook Before Close zugreifen?
Besten Dank für eine Hilfe!
mfg
Erich
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Workbook Before Close
Dr.
Brauchst Du doch nicht. Wenn Du hinter Deinem Button ein Workbook.Close hinterlegst, wird der dort enthaltene Code automatisch abgearbeitet.
Danke! o.T.
Erich
.
AW: Workbook Before Close
29.09.2004 09:11:31
Matthias
Hallo Erich,
lager' den Code in ein allgemeines Modul aus:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Aenderungen_aufheben
End Sub
und in ein allgemeines Modul:
Sub Aenderungen_aufheben()
'hier dein Code
End Sub
diese Prozedur kannst du auch mit einem CommandButton aufrufen.
Im Übrigen wäre es besser, die Workbook_Deactivate-Prozedur zu verwenden, die wird auch beim Schließen ausgeführt und außerdem noch beim Wechsel der aktiven Mappe.
Sonst kann es zu Fehlern bei anderen offenen Mappen kommen.
Gruß Matthias
Anzeige
DANKE - Matthias; interessante Hinweise - o.T.!!
Erich
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Workbook Before Close in Excel VBA


Schritt-für-Schritt-Anleitung

Um mit der Excel VBA-Programmierung den Workbook Before Close-Ereignis zu nutzen, folge diesen Schritten:

  1. Öffne dein Excel Workbook und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Doppelklicke auf "DieseArbeitsmappe" im Projekt-Explorer, um das Codefenster zu öffnen.

  3. Füge den folgenden Code ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       Aenderungen_aufheben
    End Sub
  4. Erstelle ein allgemeines Modul:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf "Module" und wähle "Einfügen" > "Modul".
  5. Füge in das neue Modul den Code ein:

    Sub Aenderungen_aufheben()
       ' Hier dein Code, um Änderungen aufzuheben
    End Sub
  6. Verknüpfe den Code mit einem CommandButton:

    • Füge ein CommandButton-Objekt in dein Arbeitsblatt ein und weise ihm folgendes zu:
    Private Sub CommandButton1_Click()
       ThisWorkbook.Close
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Prozedur wird nicht aufgerufen
    Stelle sicher, dass der Code im richtigen Modul platziert ist. Workbook_BeforeClose muss in "DieseArbeitsmappe" stehen und nicht in einem allgemeinen Modul.

  • Fehler: Änderungen werden nicht aufgehoben
    Prüfe, ob die Subroutine Aenderungen_aufheben korrekt implementiert ist und keine Fehler enthält.


Alternative Methoden

Eine alternative Methode, um den Workbook Before Close-Ereignis zu nutzen, ist die Verwendung der Workbook_Deactivate-Prozedur. Diese wird sowohl beim Schließen als auch beim Wechseln zu einer anderen Arbeitsmappe ausgeführt. Hier ein Beispiel:

Private Sub Workbook_Deactivate()
    Aenderungen_aufheben
End Sub

Dies kann verhindern, dass Fehler auftreten, wenn mehrere Arbeitsmappen offen sind.


Praktische Beispiele

Ein Beispiel für das Aufheben von Änderungen könnte so aussehen:

Sub Aenderungen_aufheben()
    ' Beispiel: Zelleninhalte zurücksetzen
    ThisWorkbook.Sheets("Tabelle1").Range("A1").Value = ""
End Sub

Wenn du den Button drückst, wird die Zelle A1 in "Tabelle1" geleert, bevor die Arbeitsmappe geschlossen wird.


Tipps für Profis

  • Verwende Workbook_BeforeClose für wichtige Bereinigungen: Nutze dieses Ereignis, um sicherzustellen, dass alle kritischen Daten gesichert oder bereinigt werden, bevor das Workbook geschlossen wird.

  • Testen des Codes: Achte darauf, deinen Code gründlich zu testen, insbesondere wenn du mit mehreren Arbeitsmappen arbeitest. Verwende Debug.Print, um den Status zu verfolgen.

  • Vermeide unnötige Abfragen: Wenn der Benutzer nicht gefragt werden soll, ob er speichern möchte, kannst du ThisWorkbook.Saved = True setzen.


FAQ: Häufige Fragen

1. Wie kann ich den Workbook Close Event in Excel VBA nutzen?
Du kannst den Workbook Close Event durch die Implementierung der Workbook_BeforeClose-Prozedur in "DieseArbeitsmappe" nutzen.

2. Was passiert, wenn ich Cancel = True setze?
Wenn du Cancel = True in der Workbook_BeforeClose-Prozedur setzt, wird das Schließen der Arbeitsmappe abgebrochen.

3. Kann ich mehrere Aktionen im Workbook Before Close durchführen?
Ja, du kannst mehrere Funktionen innerhalb der Workbook_BeforeClose-Prozedur aufrufen, um verschiedene Aufgaben durchzuführen, bevor die Arbeitsmappe geschlossen wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige