Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
500to504
500to504
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

IsNumeric

IsNumeric
19.10.2004 22:57:04
Gregor
Guten Abend zusammen
Mit einer Input Box (Zahl = Input Box ...) erfrage ich eine Zahl, die ich anschliessend mit der select case Methode auswerte. Damit die Auswertung richtig erfolgt, schreibe ich für die Variable "Zahl" das Format Byte (Dim Zahl As Byte) vor.
Wie fange ich nun den Fehler auf, wenn jemand irrtümlich eine Zeichenfolge eintippt? Und wie fange ich den Button "Abbrechen" auf, da dieser ja die Zeichenfolge 0 zurückgibt.
Ich habs schon mit If IsNummeric probiert, aber dann gibt es beim Abbrechen auch eine Fehlermeldung.
Vielen Dank und Gruss
Gregor

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IsNumeric
Ramses
Hallo
Nimm statt Byte Variant, dann erhältst du keinen Fehler
If Zahl = "" Or Not IsNumeric(Zahl) Then
Msgbox "Keine Zahl"
Exit Sub
End If
... sollte reichen.
Gruss Rainer
AW: IsNumeric
20.10.2004 00:09:29
Gregor
Rainer, vielen Dank für die Antwort.
Wenn ich Variant nehme, wertet es mit der Select Case Methode nicht richtig aus.
Die InputBox Eingabe 55 interpretiert es dann als Zeichenfolge und bei Select Case Zahl (Case Is &gt= 55 oder Case 55) wird zB. 55 als falsch intepretiert.
Kannst du mir weiterhelfen?
Gruss bis morgen
Gregor
AW: IsNumeric
Ramses
Hallo
Warum sollte das nicht funktionieren ?

Sub test()
Dim zahl As Variant
zahl = InputBox("Zahl eingeben", "Test", 55)
If zahl = "" Or Not IsNumeric(zahl) Then
MsgBox "Keine Zahl"
Exit Sub
End If
Select Case zahl
Case Is >= 55
MsgBox "OK"
Case Else
MsgBox "Kleiner 55"
End Select
End Sub

Gruss Rainer
Anzeige
AW: IsNumeric
Gregor
Hoi Rainer
Vielen Dank, deine Version klappt bestens. Ich habe aber bei Select Case irgendwelche Unklarheiten.
Wenn ich im Beispiel test1 in der InputBox nichts eingebe und ok drücke oder auf Abbrechen klicke wird der Wert "" bei Case Is >= 55 als wahr angenommen. Wieso das?

Sub test1()
Dim Zahl As Variant
Zahl = InputBox("Zahl eingeben", "Test", 55)
Select Case Zahl
Case Is >= 55
MsgBox "OK"
Case Else
MsgBox "Kleiner 55"
End Select
End Sub

Gruss Gregor
LESEN...
Ramses
Hallo
hast du meinen Code angeschaut ?
Dann dürte doch alles klar sein,... oder ?
Ohne Prüfung geht es nicht.
Gruss Rainer
Anzeige
AW: IsNumeric inputbox
Reinhard
Hi Gregor,

Sub test1()
Dim Zahl As Variant
Zahl = Application.InputBox("Zahl eingeben", "Test", 55)
Select Case Zahl
Case Is >= 55
MsgBox "OK"
Case False
MsgBox "Abbruch"
Case Else
MsgBox "Kleiner 55"
End Select
End Sub

Wenn du 55 vorgibst ist es ja okay wenn bei Klick auf OK "Ok" angezeigt wird.
Application.Inputbox ist was anderes als InputBox, siehe Hilfe, InputBox-Funktion und InputBox-Methode.
Gruß
Reinhard
AW: IsNumeric inputbox
Reinhard
Hi Gregor,
probiers mal so:

Sub test1()
Dim Zahl As Variant
Zahl = Application.InputBox(prompt:="Zahl eingeben", Title:="Test", Default:=55, Type:=1)
Select Case Zahl
Case Is >= 55
MsgBox "OK"
Case False
MsgBox "Abbruch"
Case Else
MsgBox "Kleiner 55"
End Select
End Sub

Gruß
Reinhard
Anzeige
AW: IsNumeric inputbox
20.10.2004 10:36:33
Gregor
Rainer
Deinen Code habe ich sehr genau angeschaut, und funktioniert so auch bestens. Nur will ich den Befehl Abbrechen und eine Fehleingabe (zB. leer oder Zeichenfolge) anders abfangen. Abbrechen soll zu Exit Sub und eine Fehleingabe soll zu einer Mitteilung mit Wiederholung der InputBox führen.
Deshalb meine vielleicht etwas komische Frage zu test1, dessen Vorgang ich zudem nicht verstehe, weil "" ja keine Zahl ist.
Ich hab's dank deiner Hilfe wie folgt gelöst, führt aber bei leer zum Abbruch statt zur Aufforderung für eine Neueingabe:
Wiederholen:
Perron = InputBox(prompt:="Geben Sie bitte die gewünschte Höhe der Perronkante ein" _
& vbNewLine & vbNewLine, _
Title:="Höhe der Perronkante", _
Default:=55, _
Type:=1)

If Perron = "" Or Not IsNumeric(Perron) Then
If Perron = "" Then
Exit Sub
Else
MsgBox prompt:="Bitte wiederholen Sie Ihre Eingabe" _
& vbNewLine & vbNewLine & "(Perronhöhen von 0 bis 55)", _
Title:="Fehleingabe"
GoTo Wiederholen
End If
End If
Reinhard
Danke für den interesannten Hinweis. Das Problem leer versuchte ich so zu lösen, dann wird jedoch Abbruch als "ok" quittiert. Irgendwie scheint mir das zwar unlogisch. Hingegen gibt es bei leer einen Excel-Hinweis.
Select Case Perron
Case Is MsgBox prompt:="Bitte wiederholen Sie Ihre Eingabe" _
& vbNewLine & vbNewLine & "(Perronhöhen von 1 bis 55)", _
Title:="Fehleingabe"
GoTo Wiederholen
Case False
Exit Sub
Case Else
GoTo weiter
End Select
weiter:
Die Frage ist grundsätzlich, wie kann ich bei einer Input Box
- eine Zeichenfolge (abc)
- leer (kein Eintrag und ok)
- Abbruch (klick auf Abbruch)
sauber abfangen und handeln und die Eingabe mit Select Case auswerten?
zB.
Select Case Is >= 55
select Case Is 45 To 54
Select Case Is 35 To 44
Select Case Is &lt=34
Gruss Gregor
Anzeige
AW: IsNumeric inputbox
Ramses
Hallo
mach es so, das ist am einfachsten

Sub test()
Dim Perron As Variant
Dim reStart As Boolean
reStart = False
Do
If reStart = False Then
Perron = InputBox("Geben Sie bitte die gewünschte Höhe der Perronkante ein", _
"Höhe der Perronkante", "55")
Else
Perron = InputBox("Wiederholen Sie Eingabe der" & Chr$(13) & _
"gewünschte Höhe der Perronkante ein", "Höhe der Perronkante", "55")
End If
If Perron = "" Then Exit Sub
If IsNumeric(Perron) Then Exit Do
reStart = True
Loop
Select Case Perron
Case Is >= 55
Case Is < 55
End Select
End Sub

Gruss Rainer
Anzeige
AW: IsNumeric inputbox
21.10.2004 00:32:22
Gregor
Rainer
Ich danke dir für deine detaillierte Hilfe. Super!
Gruss Gregor

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige