Abfrage beim schließen von Excel unterdrücken

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Abfrage beim schließen von Excel unterdrücken
von: JayLen
Geschrieben am: 14.04.2005 12:11:16
Hi
Ich habe folgendes Makro in 'DieseArbeitsmappe' eingefügt. Es soll die Abfrage die Excel am Ende startet, ob gespeichert werden soll und so übernehmen.
Wenn ich auf schließen drücke kommt auch die Abfrage. Dann drücke ich auf Ja, er speichert, führt das makro aus und schließt dann. Super. Allerdings macht er das bei Nein und Abbrechen nicht. Da interessiert ihn kaum was bei mir im Makro steht. Er fragt danach nochmal genau das gleiche, was dann von Excel kommt.
So... Kann ich also diese Abfrage von Excel abblocken? oder wie kann ich jetzt mein Makro ausführen wenn auf Ja gedrückt wird?
Danke für die Hilfe...
JayLen
Code:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim Msg As String
    Msg = "Sollen Ihre Änderungen in 'Test.xls' gespeichert werden?"
    Dim Antwort As VbMsgBoxResult
    Antwort = MsgBox(Msg, vbExclamation Or vbYesNoCancel, "Microsoft Excel")
    If Antwort = vbYes Then
      ActiveWorkbook.Save
      Application.Run "Test.xls!Format"
      Workbooks("Test.xls").Close
    ElseIf Antwort = vbNo Then
      Workbooks("Test.xls").Close SaveChanges:=False
    Else
      Sheets("Ausgabe").Select
      Range("A1").Select
    End If
End Sub

Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: Franz W.
Geschrieben am: 14.04.2005 12:23:55
Hallo JayLen,
setz ans Ende deines Makros:
ThisWorkbook.Save

Grüße
Franz
Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: JayLen
Geschrieben am: 14.04.2005 12:30:04
hmm, mit welchem Sinn?
Er soll ja bei den Verzweigungen Nein und Abbrechen nicht speichern. Er soll ja meine Abfrage genauso behandeln wie die von Excel, nur das bei mir ein Makro eingebaut ist, dass er beim schließen der Datei durchlaufen lässt.
ciao JayLen
Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: yogi
Geschrieben am: 14.04.2005 12:58:00
Hallo JayLen,
Versuchs mit
ElseIf Antwort = vbNo Then
Workbooks("Test.xls").Saved=True
Else
Gruss
yogi
Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: Volker
Geschrieben am: 14.04.2005 13:03:02
Hallo,
so geht's:
.........
ElseIf Antwort = vbNo Then
Application.DisplayAlerts = False
Workbooks("Test.xls").Close SaveChanges:=False
Else
........
Gruß
Volker
Bild

Betrifft: Sorry, war blöd von mir
von: Franz W.
Geschrieben am: 14.04.2005 15:05:26
hab deinen Code wohl zu oberflächlich durchgelesen, bin von falschen Voraussetzungen ausgegangen, tut mir leid
Grüße
Franz
Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: u_
Geschrieben am: 14.04.2005 13:06:18
Hallo,
vermeide diese If-If-Konstruktionen!
So klappt es:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim Msg As String
    bolMakro = True
    Msg = "Sollen Ihre Änderungen in 'Test.xls' gespeichert werden?"
    Dim Antwort As VbMsgBoxResult
    Antwort = MsgBox(Msg, vbExclamation Or vbYesNoCancel, "Abfrage")
    Select Case Antwort
      Case vbYes
        ActiveWorkbook.Save
        Application.Run "Test.xls!Format"
        Workbooks("Test.xls").Close
      Case vbNo
        Workbooks("Test.xls").Saved = True
      Case Else
        Sheets("Ausgabe").Select
        Range("A1").Select
        Cancel = True
    End Select
End Sub

Gruß
Bild

Betrifft: AW: Abfrage beim schließen von Excel unterdrücken
von: JayLen
Geschrieben am: 14.04.2005 13:38:14
Hallo
Ich danke dir. Mit meinem Quellcode hat es auch nicht richtig funktioniert. Da hat er mir komischer weise bei abbrechen alles dicht gemacht und bei nein die eingabeaufforderung von excel ausgeworfen ^^. aber was solls. es klappt jetzt mir deinem Code.
Danke und mfg
JayLen
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Abfrage beim schließen von Excel unterdrücken"