1.4k Aufrufe
Gefragt in WindowsXP von
Moin,
ich kriegs einfach nicht hin...
Ich möchte ein Makro einbauen, dass in einer "JA/NEIN"-Abfrage bei "NEIN" verhindert, dass die Datei geschlossen wird. Stattdessen soll der User auf ein bestimmtes Tabellenblatt geführt werden.

Nach bisherigem Forschen habe ich folgendes Makro zusammen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If MsgBox("Info-Mail versandt?", vbYesNo +
vbQuestion + _
vbDefaultButton1, "Nachfrage") = vbYes Then Exit Sub

Call Nochmal
End Sub

Sub Nochmal()

Sheets("Info").Select
Range("B7").Select
'ActiveWorkbook.Close = False
MsgBox "Bitte hier Mail aktivieren."

End Sub


Das klappt soweit zwar ganz gut, allerdings habe ich den blöden Effekt, dass er nach Betätigen des "OK"-Buttons für die zweite MsgBox ("Bitte hier...") die Datei trotzdem schließt.
Komme ich aus der Nummer mit irgendeinem Befehl nicht wieder raus? Sprich: wenn bei der 1.Abfrage "Nein" gewählt wird, soll er die Datei NICHT schließen.

Bin für jeden Tipp dankbar!

3 Antworten

0 Punkte
Beantwortet von
So. Zwischenzeitlich habe ich nochmal rumgefummelt und gesurft.
So funktioniert es. Falls mal jemand ähnliche Probleme haben sollte. :-)

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Ergebnis As Byte

Ergebnis = MsgBox("Info-Mail versandt?", vbYesNo + vbQuestion + _
vbDefaultButton1, "Nachfrage")

If Ergebnis = 7 Then
Cancel = True
MsgBox "xxx"

End If

End Sub
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

du musst eine return unterbringen, etwa so

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Nein:
If MsgBox("Info-Mail versandt?", vbYesNo +
vbQuestion + _
vbDefaultButton1, "Nachfrage") = vbYes Then Exit Sub

Call Nochmal
Goto Nein
End Sub



Gruß

Helmut
0 Punkte
Beantwortet von
Hmm, das kann ich morgen auch nochmal ausprobieren.
Im Moment erfreue ich mich noch an der anderen Lösung... :-))
Danke trotzdem für den Tipp!
...