Herbers Excel-Forum - das Archiv

Variablentypen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Variablentypen
von: Rolf

Geschrieben am: 17.03.2005 14:26:10
Hi Forum,
Wieder mal das leidige Variablen Thema:
Per Input-Box wird Variable A bstimmt.
Nun soll folgendes Geprüft werden:
1. Wenn Eingabe Leer, dann wiederholen (Bereits gelöst mit Goto)
2. Wenn Eingabe <> einer Zahl dann wiederholen (Noch nicht gelöst, wie geht das?)
3. Eingabe muss zwischen 1 und 500 liegen (Noch nicht gelöst, wie geht das?)
Danke für eure Tipps!
Rolf
Bild

Betrifft: AW: Variablentypen
von: Boris

Geschrieben am: 17.03.2005 14:41:25
Hi Rolf,
Option Explicit
Sub test()
Dim A As Integer
Do
A = Application.InputBox("Bitte Zahl zwischen 1 und 500 eingeben", "Eingabe", Type:=1)
Loop Until A = Int(A) And A > 0 And A < 501
End Sub

Wobei ich eigentlich die Abbruchbedingung über die Schaltfläche noch zulassen würde.
Grüße Boris
Bild

Betrifft: AW: Variablentypen
von: Nepumuk

Geschrieben am: 17.03.2005 14:42:14
Hallo Rolf,
so geht's:


Public Sub test()
    Dim varInput As Variant
    Do
        varInput = Application.InputBox("Wert eingeben.", "Eingabe", Type:=1)
        If VarType(varInput) = 11 And CBool(varInput) = False Then Exit Sub 'Abbrechen gedrückt
        If varInput >= 1 And varInput <= 500 Then Exit Do
        MsgBox "Der Wert muss zwischen 1 und 500 liegen.", 48, "Hinweis"
    Loop
    MsgBox "Jaaaa", 64, "Information"
End Sub


Gruß
Nepumuk
Bild

Betrifft: An alle: Vielen Dank, hat geklappt!
von: Rolf
Geschrieben am: 17.03.2005 21:04:23

.
Bild

Betrifft: AW: Variablentypen
von: Frank Domke

Geschrieben am: 17.03.2005 14:44:00
Hallo Rolf,
anbei ein Lösungsvorschlag:
Sub Eingabe()
Dim strVar As String
Dim intVar As Integer
Do While True
strVar = InputBox("Bitte geben Sie eine Zahl zwischen 1 und 500 ein!", "Eingabe", strVar)
If Len(strVar) = 0 Then
MsgBox "Eingabe leer!", vbInformation
Else
On Error Resume Next
intVar = CInt(strVar)
If Err.Number <> 0 Then
Err.Clear
MsgBox "Bitte nur Ziffern verwenden!", vbInformation
ElseIf intVar < 1 Or intVar > 500 Then
MsgBox "Falscher Bereich!", vbInformation
Else
Exit Do
End If
End If
Loop
End Sub

Viel Erfolg
Frank.
 Bild