Herbers Excel-Forum - das Archiv

Abfrage beim schließen von Excel unterdrücken

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
Excel-Beispiele zum Thema "Abfrage beim schließen von Excel unterdrücken"
Unterdrückung von Sicherheitsabfragen Arbeitsmappe-Schließen-Abfrage abfangen
Name der aufrufenden Schaltfläche abfragen Abfrage der markierten Spalten
Anzahl der einzufügenden Zeilen abfragen Programmabbruch bei Überspeichernabfrage verhindern
Abfrage, ob ein Menü in einer Menüleiste vorhanden ist Web-Abfrage ohne *.iqy-Datei
Web-Aktienkursabfrage bei YAHOO Start- und Enddatum abfragen und markieren