Seite 1 von 1

msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 17:24
von Thorsten_Z
Moin Forum,
ich brauche mal wieder einen kleinen Anstoß. Wie frage ich bei einer Msgbox das "ok" bzw. "Abbrechen" Feld ab. Bei "ok" soll das Makro weiter laufen, und bei "Abbrechen" logischerweise die Prozedur beenden.
So hab ich es mir gedacht, aber es funktioniert nicht:

sub Loeschen()
Msgbox ("Wirklich Löschen?",1)
if msgbox = abbrechen then exit sub
else
... meine Prozedur...

end if
end sub

Wer kann mir eben auf die Sprünge helfen?
Danke und Gruß
Thorsten

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 17:39
von komma4
Thorsten_Z hat geschrieben:ich brauche mal wieder einen kleinen Anstoß.
F1 = Onlinehilfe, Basic: MsgBox-Funktion [Laufzeit]
Onlinehilfe hat geschrieben:Rückgabewert:
1 : OK
2 : Abbrechen
3 : Abbruch
4 : Wiederholen
5 : Ignorieren
6 : Ja
7 : Nein

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 17:49
von Thorsten_Z
Hallo komma4,
danke für die schnelle Antwort. Aber nun gibt er mir nen Basik-Syntaxfehler "Else/EndIF ohne IF" raus.
Was ist da los?

sub Loeschen()
Msgbox ("Wirklich Löschen?",1)
if msgbox = 2 then exit sub
else
... meine Prozedur...

end if
end sub

Gruß
Thorsten

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 18:01
von lorbass
Onlinehilfe hat geschrieben:Beispiel:
Sub ExampleMsgBox
Dim sVar as Integer
sVar = MsgBox("Las Vegas")
sVar = MsgBox("Las Vegas",1)
sVar = MsgBox( "Las Vegas",256 + 16 + 2,"Titel im Dialog")
end sub
Gruß
lorbass

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 18:10
von Thorsten_Z
Hallo Lorbass,
die Onlinehilfe ist mir wohl bekannt, hilft mir aber nicht bei meinem Problem. Der Rückgabewert für Ok ist 1 und für Abbrechen 2. Soweit bin ich ja schon. Jetzt funzt aber die ganze Prozedur nicht mehr (s. Fehlermeldung).

für Hinweise in dieser Richtung wäre ich sehr dankbar

Gruß
Thorsten

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 18:17
von Thorsten_Z
Der Teufel scheint im Detail zu liegen, so funzt es

Code: Alles auswählen

sub Loeschen
IF Msgbox ("Wirklich Löschen?",1)= 2 then 
exit sub
Else 
msgbox(".. meine Prozedur...")
end if
end sub
Wer hätte gedacht, dass nach dem "then" ein absatz gehört.... Naja. Auf jedenfall Danke an die Helfer

Re: msgbox OK/ Abbrechen abfragen

Verfasst: So, 07.03.2010 18:59
von lorbass
Thorsten_Z hat geschrieben:Wer hätte gedacht, dass nach dem "then" ein absatz gehört.
Nein, das war nicht dein Fehler. Es ist einfach ein Unterschied, ob du - wie in deinen beiden ersten Beiträgen - falsch schreibst

Code: Alles auswählen

Msgbox ("Wirklich Löschen?",1)
if msgbox = 2 then
oder - wie in deinem letzten Beitrag - richtig schreibst

Code: Alles auswählen

IF Msgbox ("Wirklich Löschen?",1)= 2 then 
Gruß
lorbass

Re: msgbox OK/ Abbrechen abfragen

Verfasst: Mo, 08.03.2010 13:38
von DPunch
lorbass hat geschrieben:
Thorsten_Z hat geschrieben:Wer hätte gedacht, dass nach dem "then" ein absatz gehört.
Nein, das war nicht dein Fehler.
Doch, das ist ein Syntaxfehler ;)

Schreibt man den "Dann"-Block in die gleiche Zeile wie die Bedingung, gilt der gesamte "If"-Block als abgeschlossen, ohne "End If".

a)
If 5=5 Then MsgBox "Richtig"

b)
If 5=5 Then
MsgBox "Richtig"
End If

Will man Variante a) mit einem "Else" kombinieren, führt das logischerweise zu einem Syntaxfehler, da der If-Block abgeschlossen ist und das "Else" zusammenhangslos im Code rumschwirrt.
Der Rest Deines Einwurfs ist natürlich trotzdem richtig ;)