Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

IIf - Anweisung mit Sprungmarke | Herbers Excel-Forum


Betrifft: IIf - Anweisung mit Sprungmarke von: Mathias
Geschrieben am: 10.12.2009 21:47:42

Ich möchte eine IIf - Abfrage verwenden und darin eine Sprungmarke einfügen. Leider hab ich keine Ahnung, weshalb meine Variante nicht funzt. Könnt ihr mir helfen? Hier mein Versuch:

 IIf IsNumeric(TextBox1.Value), Goto Start,  GoTo Beenden

  

Betrifft: AW: IIf - Anweisung mit Sprungmarke von: Hajo_Zi
Geschrieben am: 10.12.2009 21:52:56

Hallo Matthias,

mit Sprungmarken wird eigentlich nicht meher gearbeitet.
Ich würde vermuten bei Dir fehlt ein KLammerpaar ()

GrußformelHomepage


  

Betrifft: erl. von: Mathias
Geschrieben am: 10.12.2009 22:17:43

Ich glaub, ich hab es:

http://www.vbarchiv.net/commands/IIF.php

Es gehen nur Strings, mit denen man arbeiten kann!!!


  

Betrifft: Du verwendest IIf falsch (anstatt If)... von: NoNet
Geschrieben am: 10.12.2009 22:33:57

Hallo Mathias,

IIf (...) ist doch eine Funktion, die einen WERT zurückgibt (ähnlich der WENN()-Tabellenblattfunktion !) und keine Funktion zum Überprüfen und daraus resultierendem "Springen" im Code.

Dazu benötigst Du einfach nur eine IF-Anweisung :

Private Sub CommandButton1_Click()
    If IsNumeric(TextBox1.Value) Then GoTo Teil1 Else: GoTo Teil2
Teil1:
    MsgBox "Teil 1"
    GoTo Ende
    
Teil2:
    MsgBox "Teil 2"

Ende:
End Sub
Davon abgesehen ist "GOTO" wirklich ein Sprachelement, das man nicht (mehr) verwenden sollte !

Gruß, NoNet


  

Betrifft: ...zumindest nicht bei so etwas wie... von: Luc:-?
Geschrieben am: 11.12.2009 02:34:31

...deinem Bsp, NoNet... ;-)
Es gibt aber schon noch Fälle, wo der GoTo- bzw GoSub-Einsatz sinnvoll sein kann — besonders in Kombination mit On. Für dein Bsp wäre das so...
On 1 + IsNumeric(TextBox1.Value) GoTo Teil2
Wenn numerisch, ergibt sich 0 &rarr es wird mit dem nächsten Befehl, also der Teil1-MsgBox, fortgesetzt.
Fazit: Eine Sprungmarke und etliche Zeichen eingespart, 1 VglOperation durch einfache Addition ersetzt (bleibt nur noch die VglFkt)!
Gruß Luc :-?


  

Betrifft: Ich habe Mathias' Beispiel 1:1 umgesetzt von: NoNet
Geschrieben am: 11.12.2009 03:02:19

Hey Luc,

ich habe Mathias' Versuch lediglich 1:1 in eine funktionierende Variante umgeformt. Auf diese "GoTo"-Variante bezog sich mein "Kommentar".
Dass "GoTo" in anderen Fällen ("On Error" etc.) sinnvoll sein kann, würde ich nicht dementieren...

Gruß, NoNet