Variablentypen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
InputBox MsgBox
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

Beiträge aus den Excel-Beispielen zum Thema "Wenn Zelle leer dann Wert kopieren"