Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1576to1580
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

Workbook.Close mit Messagebox

Workbook.Close mit Messagebox
07.09.2017 08:13:02
_Domi_
Hallo zusammen,
ich habe folgendes Problem:
beim Schließen meiner Vorlage wird anhand einer Zelle geprüft ob ich das Dokument als Develop gekennzeichnet habe.
Ist dies der Fall erscheint beim Schließen des Workbooks eine Messagebox mit Ja und Nein.
Bei Ja wird das Dokument automatisch als Vorlage unter einem Pfad gespeichert.
Bei Nein soll das Workbook ohne speichern geschlossen werden.
Da dieses Prozedere im Workbook_BeforeClose aufgerufen wird, erscheint die Messagebox beim Drücken auf Nein zweimal, da ich ja mit dem Nein Button das Dokument quasi erneut schließe.
Hier der Code:
If Range("U6") = True Then
Dim Rückgabe As Integer
Rückgabe = MsgBox("Sie beenden das Dokument im Develop Modus?", vbYesNo + vbExclamation, "Beenden")
If Rückgabe = 6 Then Develop_Modus
If Rückgabe = 7 Then ThisWorkbook.Close False
End If
Hat jemand eine Idee wie ich das beheben kann?
Danke und Gruß Domi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbook.Close mit Messagebox
07.09.2017 08:23:28
ChrisL
Hi Domi
Hier ein Vorschlag:

Public bCheck As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If bCheck Then Exit Sub
If Range("U6") = True Then
Dim Rückgabe As Integer
Rückgabe = MsgBox("Sie beenden das Dokument im Develop Modus?", vbYesNo + vbExclamation, " _
Beenden")
If Rückgabe = 6 Then Develop_Modus
Cancel = True
If Rückgabe = 7 Then
bCheck = True
ThisWorkbook.Close False
End If
End If
End Sub
cu
Chris
AW: Workbook.Close mit Messagebox
07.09.2017 09:18:55
_Domi_
Super danke Chris, funktioniert top :)
AW: Workbook.Close mit Messagebox
07.09.2017 08:37:05
UweD
Hallo Domi
2x:
durch das "ThisWorkbook.Close" rufst du ja erneut das "Workbook_BeforeClose"-Event auf.
Das kannst du verhindern, indem du das temporär ausschaltest.
ABER.
Falls nach dem Ausschalten mal ein Fehler auftreten sollte, bleibt das aus.
Deshalb sollte man eine Fehlerbehandlung einbauen und dort auf jeden fall wieder einschalten
und noch ein Tipp: Referenziere immer das Blatt, worauf du zugreifst.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error GoTo Fehler
    Dim WS As Worksheet, Rückgabe As Integer
    Set WS = Sheets("Tabelle1")
    
    If WS.Range("U6") = True Then
        Rückgabe = MsgBox("Sie beenden das Dokument im Develop Modus?", vbYesNo + vbExclamation, "Beenden")
        If Rückgabe = 6 Then Develop_Modus
        If Rückgabe = 7 Then
            Application.EnableEvents = False
            ThisWorkbook.Close False
            
        End If
    End If
    
    '*** Fehlerbehandlung 
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Workbook.Close mit Messagebox
07.09.2017 08:42:28
ChrisL
Hi Uwe
So bleiben die Events ausgeschaltet. Da die Mappe schon zu ist kommt die Zeile zum Wiedereinschalten nicht zum Tragen.
cu
Chris
uupps. stimmt.
07.09.2017 09:09:50
UweD
Da hab ich nicht zu Ende gedacht.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige