VBA verschachtelte If-Abfrage?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

So mit if und elseif

If Sheets("Admin").Range("B73").Value = 2 Then
    'bla bla
ElseIf Sheets("Admin").Range("B73").Value = 3 Then
    Sheets("Kundenbeleg").Select
    sTxt = InputBox("Herzlich Willkommen zurück")
    If Trim(sTxt) = "" Then
        MsgBox "Kein Code"
    Else
        Sheets("Admin").Range("F73").Value = sTxt
        'ThisWorkbook.Save
        MsgBox "gespeichert"
    End If
ElseIf Sheets("Admin").Range("B73").Value = 4 Then
    'bla bla
End If

Und so mit select ... case

Select Case Sheets("Admin").Range("B73").Value
    Case 2
        'bla bla
    Case 3
        Sheets("Kundenbeleg").Select
        sTxt = InputBox("Herzlich Willkommen zurück")
        If Trim(sTxt) = "" Then
            MsgBox "Kein Code"
        Else
            Sheets("Admin").Range("F73").Value = sTxt
            'ThisWorkbook.Save
            MsgBox "gespeichert"
        End If
    Case 4
        'bla bla
End Select

Vielen Dank. Hat soweit geklappt und habe meine Fehler auch gefunden. Mit jeder Frage lernt man etwas mehr ;)

1

Es ist total unklar, was der unterschied zwischen

Wenn Text eingegeben wird, 

und

Sollte jedoch etwas eingegeben werden

sein soll.

Ich interpretiere es mal so dass "Sollte jedoch etwas eingegeben werden" bedeutet das es keine Texteingabe ist, folglich bleibt nur numerisch/datum übrig. Ich nehme mal numerisch als Beispiel.


Select Case True
    Case IsNumeric(sTxt) 'Sollte jedoch etwas eingegeben werden, dann kommt die MSGBox (gesichert).
        'ThisWorkbook.Save
        MsgBox "gespeichert"
    Case Trim(sTxt) = "" 'Sollte kein Text eingegeben werden, kommt die MSGBox (kein Code)
        MsgBox "Kein Code"
    Case Else 'Wenn Text eingegeben wird, soll dieser in F73 erscheinen.
        Sheets("Admin").Range("F73").Value = sTxt
End Select


Vom dem "Case" habe ich bereits gelesen. Aber wie mache ich die If-Abfrage. Wie läuft das denn ab?

ElseIf Sheets("Admin").Range("B73").Value = 3 Then
Sheets("Kundenbeleg").Select
sTxt = InputBox("Herzlich Willkommen zurück")

Zuerst muss ich doch abfragen, ob in B73 die 3 steht. (Denn es könnte auch die 2 oder 1 stehen und dann wird eine andre If-Abfrage abgerufen.) Dann soll die Inputbox kommen.

Und je nach Inhalt der Inputbox soll:

steht etwas drinnen: MSGBox (gesichert) + Eintrag in F73
steht nichts drinnen: MSGBox (kein Code)

1

Was möchtest Du wissen?