InputBox für ganze Zahlen in Excel VBA
Schritt-für-Schritt-Anleitung
Um in Excel VBA eine InputBox zu erstellen, die nur ganze Zahlen zulässt, kannst du den folgenden Code verwenden. Dieser Code prüft die Eingabe und zeigt eine Fehlermeldung an, wenn die Eingabe ungültig ist.
Sub nurzahlen()
Dim lngEingabe As Long
On Error GoTo nochmal
nochmal:
lngEingabe = CLng(Application.InputBox("Bitte eine ganze Zahl zwischen 1 und 9999 eingeben:", "Eingabe"))
If lngEingabe < 1 Or lngEingabe > 9999 Then
MsgBox "Bitte eine Zahl zwischen 1 und 9999 eingeben."
GoTo nochmal
End If
On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
End Sub
Dieser Code blockiert die Eingabe von nicht-numerischen Werten und stellt sicher, dass nur ganze Zahlen im gewünschten Bereich akzeptiert werden.
Häufige Fehler und Lösungen
-
Typen unverträglich: Wenn du einen Text oder eine leere Eingabe machst, erhältst du diesen Fehler. Stelle sicher, dass du die Eingabe mit IsNumeric
überprüfst, bevor du sie in eine Zahl umwandelst.
Beispiel:
If Not IsNumeric(lngEingabe) Then
MsgBox "Falsche Eingabe: Bitte nur Zahlen eingeben."
GoTo nochmal
End If
-
Fehlende Eingabe: Wenn du einfach auf "OK" klickst, ohne etwas einzugeben, wird die InputBox erneut angezeigt. Achte darauf, dass du die Eingabe prüfst.
Alternative Methoden
Eine weitere Möglichkeit, nur ganze Zahlen zuzulassen, ist die Verwendung der InputBox
zusammen mit IsNumeric
. Hier ein Beispiel:
Sub NurZahlen()
Dim eingabe As String
Do
eingabe = InputBox("Bitte eine ganze Zahl eingeben:")
If Not IsNumeric(eingabe) Or (CInt(eingabe) <> CLng(eingabe)) Then
MsgBox "Falsche Eingabe: Bitte nur ganze Zahlen eingeben."
ElseIf CInt(eingabe) < 1 Or CInt(eingabe) > 9999 Then
MsgBox "Bitte eine Zahl zwischen 1 und 9999 eingeben."
Else
Exit Do
End If
Loop
End Sub
Praktische Beispiele
Hier sind einige Beispiele, wie du die InputBox
in verschiedenen Szenarien verwenden kannst:
-
Eingabe eines Alters:
Sub AlterEingabe()
Dim alter As Long
alter = CLng(Application.InputBox("Bitte dein Alter eingeben (nur ganze Zahlen):"))
If alter < 0 Then
MsgBox "Das Alter kann nicht negativ sein."
End If
End Sub
-
Geldbetrag:
Sub GeldbetragEingabe()
Dim betrag As Long
betrag = CLng(Application.InputBox("Bitte einen Geldbetrag in Euro eingeben (nur ganze Zahlen):"))
If betrag < 1 Then
MsgBox "Der Betrag muss positiv sein."
End If
End Sub
Tipps für Profis
- Verwende die
Application.InputBox
-Methode, um die Eingabe auf numerische Werte zu beschränken.
- Füge eine Fehlerbehandlung hinzu, um Benutzerfreundlichkeit zu gewährleisten.
- Nutze Schleifen, um sicherzustellen, dass der Benutzer die Eingabe so lange wiederholen muss, bis eine gültige Zahl eingegeben wurde.
- Halte den Code sauber und gut dokumentiert, um spätere Anpassungen zu erleichtern.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass nur ganze Zahlen in der InputBox eingegeben werden?
Verwende eine Kombination aus IsNumeric
und einer Validierung der Eingabewerte, um sicherzustellen, dass nur ganze Zahlen akzeptiert werden.
2. Was passiert, wenn der Benutzer nichts eingibt?
In diesem Fall erhältst du eine leere Eingabe. Stelle sicher, dass du dies in deinem Code überprüfst, um unerwartete Fehler zu vermeiden.
3. Kann ich die Eingabe auf einen bestimmten Bereich beschränken?
Ja, du kannst Bedingungen hinzufügen, um sicherzustellen, dass nur Werte innerhalb eines bestimmten Bereichs akzeptiert werden, wie im obigen Beispiel gezeigt.