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.

Message Box - Befehl "Abbrechen"
#1
Hallo Liebe Leute,

schon wieder ein Thema das mir Kopfzerbrechen beschert.
Ich will bei einer MessageBox 2 Buttons: vbOK und vbCancel
Momentan hab ich nur vbOK in meiner Messagebox stehen.

Ich will dass bei einem Klick auf OK der Code ausgeführt wird und bei einem Klick auf Abbrechen der Code nicht weiterarbeitet.
Lässt sich das irgendwie lösen?

Hier der Code für die MsgBox:
Code:
Sub machwas()
 Dim strText As String
   strText = " Wählen Sie den Speicherpfad auf Ihrem Rechner aus"
   MsgBox "INFO: " & strText, 64, "meine Ausgabe"
End Sub
mfg und Danke im Voraus
Chris!
Antworten Top
#2
Hallo!
Als Beispiel:
Code:
Sub machwas()
Dim strText As String
  strText = " Wählen Sie den Speicherpfad auf Ihrem Rechner aus"
  If MsgBox("INFO: " & strText, vbYesNo + vbInformation, "meine Ausgabe") = vbYes Then MsgBox "Dein Code"
End Sub

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Chris-89
Antworten Top
#3
Hallo Ralf,

Dankesehr, hat prima funktioniert

LG Chris
Antworten Top
#4
Hallo Chris,

die andere Variante wäre

Code:
Sub machwas()
Dim strText As String
  strText = " Wählen Sie den Speicherpfad auf Ihrem Rechner aus"
  If MsgBox("INFO: " & strText, vbYesNo + vbInformation, "meine Ausgabe") = vbNo Then Exit Sub
  '...Dein code
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Hallo André,

was ist an der Exit-Sub-Variante so viel besser, dass Du sie extra vorstellst? Wink
Wenn man Exit Sub vermeiden kann, sollte man das tun. Genauso wie GoTo.

Gruß Uwe
Antworten Top
#6
Hallo Uwe,

wieso sollte man Exit Sub vermeiden? Pauschal würde ich keine der beiden Varianten hervorheben, das kommt aus meiner Sicht immer auf den Einzelfall an. Durch das Exit Sub wird der code m.E. oft zumindest etwas übersichtlicher. Es ist so ab und an einfacher, als irgendwo im code nach dem passenden End If zu suchen, zuweilen vergisst man es ja auch beim programmieren und wird dann erst durch eine entsprechende Fehlermeldung darauf hingewiesen ... "Dein Code" passt ja meist nicht in die eine Zeile und oft hat man mehr als ein If und diese dann noch verschachtelt und verdreht Smile . Wenn ich mit Einrückungen arbeite, habe ich dadurch eventuell auch ein paar weniger und reize dadurch vielleicht ein paar Zeichenstellen aus, die mir bei einer Codedokumentation auf der rechten Seite fehlen Wink

Technisch gesehen wüsste ich jetzt keine Nachteile von Exit Sub. Ob Ich nun unmittelbar vor meinem End Sub das zugehörige End If habe oder gleich mit Exit Sub rausgehe, kommt meines Wissens auf dasselbe raus.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo!
Ich benutze If ... End If nur dann, wenn ich mehrere Anweisungen im Then oder Else-Teil habe.
(Auch wenn Then Anweisung1: Anweisung2: Anweisung3 möglich wäre)
Ansonsten immer den Einzeiler If ... Then ... (Else)
Wenn mir die Zeile zu lang wird, füge ich Zeilenumbrüche per _ ein.
Begründung lt. Haserodt: Geschwindigkeit.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Hallo André,

(01.05.2015, 09:26)schauan schrieb: Technisch gesehen wüsste ich jetzt keine Nachteile von Exit Sub...

:22:

Gruß Uwe
Antworten Top


Gehe zu:


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