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

Forumthread: beforeclose ereignis

beforeclose ereignis
21.04.2006 18:41:47
peter
Hi Leute,
ich habe folgenden Code:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
Dim Frage As String
Frage = "Wollen Sie die aktuelle Berechnung speichern ?"
Application.EnableEvents = False
Application.DisplayAlerts = False
Call Arbeitsmappenschutz_deaktivieren
For i = 1 To Worksheets.Count
Application.CommandBars(i).Enabled = True
Next i
Call Arbeitsmappenschutz_aktivieren
If (MsgBox(Frage, vbQuestion Or vbYesNoCancel, Name_Fenster)) = vbYes Then
Call Schutz_deaktivieren("Start")
Sheets("Start").Range("A1") = 1
ActiveWorkbook.Close SaveChanges:=True
Call Schutz_aktivieren("Start")
ElseIf (MsgBox(Frage, vbQuestion Or vbYesNoCancel, Name_Fenster)) = vbCancel Then
Cancel = True
Application.EnableEvents = True
Application.DisplayAlerts = True
Exit Sub
Else
ActiveWorkbook.Close SaveChanges:=False
End If
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub

Wenn ich jetzt den Button 'Abrechen' drücke kommt die Frage ob ich speichern will immer zweimal. Die Buttons 'ja' und 'nein' funktionieren.
Woran kann denn das liegen?
Vielen Dank!
LG Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: beforeclose ereignis
22.04.2006 11:24:56
EtoPHG
Hallo Peter,
Versuch's mal so:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
Dim Frage As String
Dim Antwort As Variant
Frage = "Wollen Sie die aktuelle Berechnung speichern ?"
Application.EnableEvents = False
Application.DisplayAlerts = False
Call Arbeitsmappenschutz_deaktivieren
For i = 1 To Worksheets.Count
Application.CommandBars(i).Enabled = True
Next i
Call Arbeitsmappenschutz_aktivieren
Antwort = MsgBox(Frage, vbQuestion Or vbYesNoCancel, Name_Fenster)
Select Case Antwort
Case vbYes
Call Schutz_deaktivieren("Start")
Sheets("Start").Range("A1") = 1
ActiveWorkbook.Close SaveChanges:=True
Call Schutz_aktivieren("Start")
Case vbCancel
Cancel = True
Application.EnableEvents = True
Application.DisplayAlerts = True
Exit Sub
Case Else
ActiveWorkbook.Close SaveChanges:=False
End Select
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub

Gruss Hansueli
Anzeige
AW: beforeclose ereignis
22.04.2006 19:50:28
peter
hi hansueli,
so funktioniert es super! woran das liegt weiß ich zwar nicht, weil ich einige andere abfragen in der selben form habe die super hinhauen! aber egal hauptsache es geht!
besten dank!
lg peter
AW: beforeclose ereignis
22.04.2006 20:12:00
EtoPHG
Hallo Peter,
Danke für die Rückmeldung.
Woran das liegt...
Na schau Dir mal Deinen Code an.
Dort kommt die Msgbox 2 mal vor, einmal im If und einmal im Else if,
darum muss sie auch 2 mal auftauchen, wenn Du nicht mi5 JA beantwortest.
Gruss Hansueli
Anzeige
AW: beforeclose ereignis
23.04.2006 08:43:56
peter
hallo hansueli,
da hast eigentlich recht!
danke nochmal für deine hilfe!
lg peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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