Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

InputBox mit Gültigkeit

InputBox mit Gültigkeit
14.05.2008 20:20:17
Dirk
Hallo an alle EXCEL-Tüftler,
wird ein "unzulässiger Wert" ( 10 od. "" od. auch irgendein Zeichen od. Buchstabe) in eine InputBox eingegeben, so soll das Makro beendet werden.
Hier ein anfänglicher Versuch:

Sub xx()
Dim strEingabe As String
strEingabe = InputBox("Wert zwischen 1 u. 10 eingeben")
              If strEingabe = ""  Or strEingabe  10 Then  '***
Exit Sub
End Sub


Wie kann man die o.g. Bedingungen in der markierten Zeile formulieren - ich komme mit der Syntax nicht weiter...?
MfG Dirk

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InputBox mit Gültigkeit
14.05.2008 20:44:55
Peter
Hallo Dirk,
versuch es einmal so:
ub mach_Es_So()
Dim a As Variant
Dim i As Byte, ok As Boolean
Range("A1:A24").ClearContents
Range("A1").Select
ok = True
' die 1 als letzter Parameter, regelt, das der User nur Zahlen eingeben kann
a = Application.InputBox("Bitte geben Sie eine Zahl zwischen 1 und 10 ein!", , , , , , , 1)
If VarType(a) = vbBoolean Then 'Abbrechen-Button gedrückt
ok = False
Else
If (a 10) Then
ok = False
End If
End If
If ok Then
For i = 1 To a
ActiveSheet.Cells(4 + i, 1).Value = "Rechner " & i
Next i
Else
MsgBox ("Bitte geben Sie eine Zahl zwischen 1 und 10 ein!")
End If
End Sub
Gruß Peter

Anzeige
AW: InputBox mit Gültigkeit
14.05.2008 21:00:00
Gerd
Hi Dirk,
meinst Du so (Ganzzahlen 1 - 10) ?

Sub xx3()
Dim retval As Variant, inteingabe As Integer
retval = InputBox("Wert zwischen 1 u. 10 eingeben")
Select Case retval
Case 1 To 10
inteingabe = CInt(retval)
Case Else
Exit Sub
End Select
End Sub


Gruß Gerd

AW: InputBox mit Gültigkeit
14.05.2008 21:08:00
Dirk
Hallo Peter,
recht vielen Dank für deine Antwort.
Allerdings sehe ich bei dieser Komplexität nicht so recht durch und hatte es mir irgendwie einfacher vorgestellt - etwa so:
If strEingabe = "" Or strEingabe 10 Or IsNumeric.strEingabe = False Then
Natürlich ist die Syntax falsch - aber verdeutlicht dies das Vorhaben etwas besser ?
MfG Dirk

Anzeige
Verwende Application.Inputbox(...)
14.05.2008 21:29:00
NoNet
Hallo Dirk,
neben der "normalen" Inputbox bietet VBA noch die Möglichkeit der Application.Inputbox, die zusätzliche Argumente verwendet, darunter auch Type:=, mit dem der einzugebende Typ (Text, Zahl etc.) vorgegeben werden kann. DAmit kannst Du bereits im Vorfeld verhindern, dass TEXT eingegeben werden kann :
Zahl=Application.InputBox("Bitte ZAHL eingeben",Type:=1) 'Type:=1 bedeutet : nur ZAHLEN.
Damit entfällt die nachträgliche Überprüfung !
Der Vollständigkeit halber : Mit folgender Abfrage könntest Du das generell überprüfen :


Sub Zahleneingabe()
    Zahl = InputBox("Bitte ZAHL eingeben")
    If IsNumeric(Zahl) Then
        If Zahl >= 1 And Zahl <= 14 Then
            MsgBox "Hurra ! Zahl liegt zwischen 1 und 14"
        Else
            MsgBox "Zahl liegt ausserhalb 1 und 14"
        End If
    Else
        MsgBox "Es wurde keine Zahl eingegeben !"
    End If
End Sub

Gruß, NoNet

Anzeige
AW: InputBox mit Gültigkeit
15.05.2008 02:54:47
Dirk
Vielen Dank an alle "Vorredner",
bitte entschuldigt die späte Antwort - ich musste nochmal weg u. habe gerade erst weitertesten können...
@Peter
Dank der erklärenden Worte von NoNet konnte ich auch deinen Vorschlag nachvollziehen.
Einziger Makel: Nahm ich in der InputBox keine Eingabe vor u. bestätigte mit "OK" erschien eine Fehlermeldung (sinngemäß: fehlerhafte Formel). Die InputBox konnte ich dann aber mit "Abbrechen" schließen. Also nahezu perfekt...
@NoNet
Zusätzlich zu den Anmerkungen an Peter, hatte in deinem Vorschlag der Button "Abbrechen" dann nicht mehr die eigentliche Funktionalität (also die Sub konnte nicht sofort beendet werden).
Aber vielen Dank für deine sehr hilfreichen Erläuterungen!
In beiden Fällen kann der Fehler natürlich auch in meinem falschen Umsetzen der Tipps liegen...
Doch: Last but not least...
@Gerd
Dein Tipp traf mitten ins Schwarze !
Was soll ich dazu noch sagen ? Außer vllt.: P E R F E K T !
Die gute Pflege deiner Glaskugel bewährte sich mal wieder... ;-)
Ich wünsche euch allen noch eine stressfreie Woche.
MfG Dirk
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige