Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Workbook_Close() geht nicht???

Forumthread: Workbook_Close() geht nicht???

Workbook_Close() geht nicht???
27.01.2004 14:35:19
PeterB
hallo phorum,
ich habe eine bescheidene frage: ich habe ein

Sub Workbook_Close()
MsgBox ("Es sind noch " & Range("J4136").Value & " Zeilen unbearbeitet")
End Sub

aber das geht bei mir nicht???
kann mir jemand helfen???
danke schön...
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook_Close() geht nicht???
27.01.2004 14:36:29
Dirk
Hallo.
Nimm "Workbook_BeforeClose"
Cheers
AW: Workbook_Close() geht nicht???
27.01.2004 14:52:25
Peterb
:-( tut trotzdem nicht ???
AW: Workbook_Close() geht nicht???
27.01.2004 14:55:49
Dirk
Hallo, die komplette Sub:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox "blah, blah"
Cancel = False
End Sub

Liegt unter "DieseArbeitsmappe". Bei mir funzt das.
Cheers
Anzeige
AW: Workbook_Close() geht nicht???
27.01.2004 14:57:58
Hajo_Zi
Hallo Dirk
bestand die Aufgabe darin die Datei nicht mehr zu schließen. Dies wird durch Deinen Code erreicht.
Gruß Hajo
AW: Workbook_Close() geht nicht???
27.01.2004 15:01:56
Dirk
Äh, wieso nicht mehr zu schließen? Cancel ist false, deswegen "kein" Abbruch. Datei wird geschlossen.
Cheers
AW: Workbook_Close() geht nicht???
27.01.2004 15:04:22
Hajo_Zi
Hallo Dirk
das habe ich überlesen, damit hatte ich auch nicht gerechnet.
Dann hast Duu aber keine Veränderung zum ersten Beitrag. Die Standardeigenschaft ist False.
Gruß Hajo
Anzeige
AW: Workbook_Close() geht nicht???
27.01.2004 14:56:27
Hajo_Zi
Hallo Peter
Du hast ja auch noch keinen Vergleich inDeinem Code

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Worksheets("Tabelle1").Range("J4136") = "" Then
MsgBox ("Es ist noch kein Eingabe in J4136 vorgenommen")
Cancel = True
End If
End Sub

Gruß Hajo
Anzeige
AW: Workbook_Close() geht nicht???
27.01.2004 15:04:32
PeterB
hallo hajao, hallo dirk,
ich möchte nur beim schliessen (oder öffnen) eine nachricht ausgeben, wieviele zeilen noch unbearbeitet sind, aber mit workbook_close() gehts einfach net.
wenn ich die sub einfach so laufen lasse, gehts und ich bin zufrieden...
AW: Workbook_Close() geht nicht???
27.01.2004 15:07:46
Hajo_Zi
Hallo Peter
Hast Du den Code an der richtigen Stelle. Nicht Modul sondern DieseArbeitsmappe
Soll nur die Meldung angezeigt werden dann Lösche die Zeile Cancel = True
Soll die Datei nicht geschlossen werden dann ist der Code ok.
Gruß Hajo
Anzeige
AW: Workbook_Close() geht nicht???
27.01.2004 15:22:52
PeterB
bei mir gehts trotzdem nicht.
*g* das vom chef gesetzte zeitlimit ist eh rum, also hat sich für mich der fall erledigt.
theoretisch gehts, ich bins soweit zufrieden ;-)
dank für eure hilfe
;
Anzeige

Infobox / Tutorial

Verwendung von Workbook_Close() in VBA


Schritt-für-Schritt-Anleitung

Um die Workbook_Close()-Funktion korrekt zu verwenden, solltest Du folgende Schritte befolgen:

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

  2. Navigiere im Projekt-Explorer zu DieseArbeitsmappe.

  3. Füge den folgenden Code in das Fenster ein:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       MsgBox "Es sind noch " & Range("J4136").Value & " Zeilen unbearbeitet."
    End Sub
  4. Achte darauf, dass Du den Code nicht in ein Modul, sondern direkt in DieseArbeitsmappe einfügst.

  5. Schließe den VBA-Editor und teste die Funktion, indem Du die Arbeitsmappe schließt.


Häufige Fehler und Lösungen

  • Fehler: "Funktion wird nicht ausgeführt"
    Stelle sicher, dass die Private Sub-Deklaration korrekt ist und dass sich der Code im Modul DieseArbeitsmappe befindet.

  • Fehler: Meldung zeigt falsche Werte
    Überprüfe, ob die Zelle J4136 tatsächlich die erwarteten Daten enthält. Möglicherweise ist sie leer oder enthält einen unerwarteten Wert.

  • Fehler: Datei wird nicht geschlossen
    Wenn Du Cancel = True verwendest, wird die Schließung der Datei abgebrochen. Stelle sicher, dass Du diese Zeile nur verwendest, wenn es notwendig ist.


Alternative Methoden

Wenn Du eine einfache Meldung beim Schließen der Arbeitsmappe ohne eine Abbruchfunktion möchtest, kannst Du auch die folgende Methode verwenden:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    MsgBox "Die Datei wird jetzt geschlossen."
End Sub

In diesem Fall wird die Datei immer geschlossen, unabhängig von den Zellenwerten.


Praktische Beispiele

Hier sind einige Beispiele, die Dir helfen können, die Funktionalität zu verstehen:

  1. Zähler für unbearbeitete Zeilen:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       If Range("J4136").Value > 0 Then
           MsgBox "Es sind noch " & Range("J4136").Value & " Zeilen unbearbeitet."
       End If
    End Sub
  2. Überprüfung auf leere Zellen:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
       If IsEmpty(Range("J4136").Value) Then
           MsgBox "Die Eingabe in J4136 fehlt."
           Cancel = True
       End If
    End Sub

Tipps für Profis

  • Verwende die Workbook_BeforeClose-Subroutine statt Workbook_Close, da sie die Möglichkeit bietet, das Schließen der Arbeitsmappe zu steuern.
  • Halte Deinen Code sauber und gut kommentiert, damit Du oder andere Benutzer später leichter verstehen, was der Code tut.
  • Teste Deine VBA-Skripte regelmäßig, um sicherzustellen, dass sie wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Kann ich die Workbook_Close()-Funktion in Excel 2016 verwenden?
Ja, diese Funktion ist in Excel 2016 und allen neueren Versionen verfügbar.

2. Was ist der Unterschied zwischen Workbook_Close() und Workbook_BeforeClose()?
Workbook_BeforeClose() erlaubt es Dir, die Schließung der Arbeitsmappe zu steuern. Workbook_Close() wird aufgerufen, nachdem die Arbeitsmappe geschlossen wird und bietet keine Möglichkeit, den Vorgang abzubrechen.

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