Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - QueryClose mit MsgBox Ja Nein
#1
Hallo Ihr Lieben,

ich brauch mal kurz euren Rat.

Ich habe in einer Exceldatei ein Formular, dass sich direkt öffnet, wenn man die Datei öffnet.

Jetzt möchte ich, dass wenn der Nutzer beim Formular auf das Windows-X klickt um das Formular
zu schließen, eine Abfrage kommt die die Datei beendet oder zum Formular zurück kehrt.

Mit meinem Code klappt soweit alles, bis auf den Punkt, wenn man auf "Nein" klickt. Da geht das
Formular dann einfach zu.


Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

If MsgBox("Möchtest du die Datei wirklich schließen? Alle eingetragenen Daten gehen dabei verloren.", vbYesNo) = vbYes Then
ActiveWorkbook.Close savechanges:=False
Else
Exit Sub
End If

End Sub

Was muss ich ändern, damit beim klick auf nein einfach nur die MsgBox zu geht und wieder das Formular zu sehen ist?

Danke Vorab :19:
Antworten Top
#2
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
on error resume next

Dim a as integer

a = MsgBox("Möchtest du die Datei wirklich schließen? Alle eingetragenen Daten gehen dabei verloren.", vbYesNo)

If a = vbYes Then
  ActiveWorkbook.Close savechanges:=False
Else
  cancel = true
  Exit Sub
End If

End Sub
---           Seid nett und helft einander :100:           ---
---   denn die Liebe ist die größte Kraft im Universum    ---
- Lest die Werke von Jakob Lorber und Gottfried Mayerhofer -
Antworten Top
#3
Super, das Funktioniert klasse. Danke :19: 

Vielleicht kannst du mir gleich noch etwas beantworten:

Wenn ich jetzt einen versteckten Button einbauen möchte, um das Formular zu schließen, damit ich es nicht ausfüllen muss und
direkt an den ExcelSheet komme, wie müsste ich den vom Code her aufbauen? Denn...


Code:
Private Sub CommandButtonClose_Click()

Unload Me

End Sub


...Klappt so ja nicht mehr, da durch das QueryClose dann die gleiche Abfrage greift und die MsgBox wieder kommt.

über
Code:
Application.DisplayAlerts = False
und danach wieder auf True stzen, klappt's leider auch nicht.
Antworten Top
#4
Lass Dein "Unload me" drin! Es muss dann noch der Wert von CloseMode ausgewertet werden:

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
on error resume next
Dim a as integer

if(closemode =0) then

a = MsgBox("Möchtest du die Datei wirklich schließen? Alle eingetragenen Daten gehen dabei verloren.", vbYesNo)
If a = vbYes Then
 ActiveWorkbook.Close savechanges:=False
Else
 cancel = true
 Exit Sub
End If
else
  cancel = false
  exitr sub
end if

End Sub
---           Seid nett und helft einander :100:           ---
---   denn die Liebe ist die größte Kraft im Universum    ---
- Lest die Werke von Jakob Lorber und Gottfried Mayerhofer -
Antworten Top
#5
Jetzt läuft es perfekt. Ganz Lieben Dank für deine Hilfe :19:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste