Hallo Enrat,
ich sehe das du eine Aufgabe per Makro lösen willst, dir fehlen aber entscheidende Basis Kenntnisse über die einzelnen Befehele und ihre Reihenfolge!
'If sucheWert = "Falsch" Then MsgBox ("Abbruch gedrückt") Else Call suchWert = InputBox("Case 1,2,3,...)
Überlege mal bitte gaqnz in Ruhe, rein objektiv, ob diese Codezeile funktionieren kann? Du triffst eine Entscheidung, bevor du die Input Eingabe kennst! !!!
Wie bitte soll das denn funktionieren? Und mit einer InpuBox kann ich nur einen Wert erfragen, aber nicht innerhaib der Box sofort mit Selet Case auswerten!
Weiterhin fiel mir auf das du zuerst mit Dim strInp As String und dann mit Dim sucheWert As Long deklariert hast. Bei Makro2 kommt eine Fehlermeldung !!
Du deklarierst die Variable als long, was auch unnötig ist, das reicht Integer für Zahlen bis 32000. Knackpunkt ist das "Falsch" ein Text ist und keine Zahl!
Ausserdem kannst du mit "Falsch" nicht abbechen, denn die richtige Anweisung dafür ist "False, und das ist ein Boolean Wert! Gibt wieder Laufzeitfehler!!
Probier es bitte mal so, indem du die Abfrage und die Auswertung in die richtige Reihenfolge bringst. Mit Wiederholung bei Falscheingabe Text oder > 3
mfg Nobody
Sub Input_Test()
Dim strInp As Variant 'wegen False !!
neu: strInp = Application.InputBox(prompt:="Eingabe", Type:=2)
'ggf. LänderCode beachten
If strInp = False Then MsgBox ("Abbruch gedrückt"): Exit Sub
'bei Text Eingabe oder Zahl > 3 Eingabe wiederholen
If Not IsNumeric(strInp) Or CInt(strInp) > 3 Then
MsgBox "Bitte nur Zahlen von 1-3 eingeben":
GoTo neu 'Eingabe wiederholen
End If
sucheZeile = 1
Select Case CInt(strInp)
Case 1: MsgBox "1 gedrückt"
Case 2: MsgBox "2 gedrückt"
Case 3: MsgBox "3 gedrückt"
End Select
End Sub
|