Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: InputBox nur ganze Zahlen

InputBox nur ganze Zahlen
31.05.2007 18:00:03
Christian
Servus,
hab mir folgenden Code besorgt:

Sub nurzahlen()
Dim varEingabe As Variant
Dim lngEingabe
On Error GoTo nochmal
nochmal:
lngEingabe = CLng(Application.InputBox("Eingabe"))
On Error GoTo 0 ' on Error zurücksetzen
End Sub


der mir nur Zahlen als Eingabe zulässt, funktioniert auch soweit. Das Problem ist nur, dass, wenn ich eine MsgBox dazwischen schalte, beim Ausführen des Codes zuerst die MsgBox kommt und dann erst das Eingabefeld.
meinte so:


Sub nurzahlen()
Dim varEingabe As Variant
Dim lngEingabe
On Error GoTo nochmal
nochmal:
MsgBox("Falsche Eingabe:")
lngEingabe = CLng(Application.InputBox("Eingabe"))
On Error GoTo 0 ' on Error zurücksetzen
End Sub


Das will ich aber nicht. Es soll zuerst die Abfrage kommen und falls eine falsche Eingabe gemacht wurde, dann die MsgBox.
Am liebsten wäre mir , wenn man nur ganze Zahlen zwischen 1 und 9999 eingeben könnte (momentan alles mit runden, also 1,67 wird 2).
Bin für jeden Tipp dankbar.
Gruß
Christian

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: InputBox nur ganze Zahlen
31.05.2007 18:24:00
Felix
Hallo,
mache es do so:

Sub nurzahlen()
Dim varEingabe As Variant
Dim lngEingabe
Err.Clear
On Error GoTo nochmal
nochmal:
If Err.Number Then MsgBox ("Falsche Eingabe:")
lngEingabe = CLng(Application.InputBox("Eingabe"))
On Error GoTo 0 ' on Error zurücksetzen
End Sub


Gruß,
Felix

Anzeige
Typen unverträglich !
01.06.2007 07:04:00
Matthias
Hallo Felix
Da ich oft im Forum allerlei Beiträge lese und viel nachbaue um zu lernen (Danke dafür an alle User hier im Forum)
ist mir da gerade etwas aufgefallen.
Schreib mal einen "Text" in die Inputbox(oder lasse sie leer).
Drücke nun "Ok"
Es erscheint wie gewünscht Falsche Eingabe
Die Inputbox erscheint erneut.
Jetzt drücke einfach nochmal Enter oder Ok (ohne etwas einzutragen)
Bei mir kommt nun der Fehler: "Typen unverträglich".
mein Vorschlag wäre daher Folgender:
wobei ich (Dim varEingabe As Variant) weggelassen habe (scheint ja nicht gebraucht zu werden)

Sub NurZahlen()
Dim lngEingabe As String
nochmal:
lngEingabe = InputBox("Eingabe")
If Not IsNumeric(lngEingabe) Then MsgBox ("Falsche Eingabe:"): GoTo nochmal
End Sub


Gruß Matthias

Anzeige
AW: Typen unverträglich !
01.06.2007 07:52:00
Chaos
Servus,
ich würde das folgendermaßen lösen, da ja nur ganze Zahlen im Bereich von 1-9999 eingegeben werden sollen:

Sub NurZahlen()
Dim dZahl As String
nochmal:
dZahl = InputBox("Eingabe")
If StrPtr(dZahl) = 0 Then
nachricht = MsgBox("Wollen Sie wirklich abbrechen ?" & Chr(13) & Chr(13), vbYesNo)
If nachricht = vbYes Then
Exit Sub
Else
GoTo nochmal
End If
End If
If IsNumeric(dZahl) Then
If dZahl > 0 And dZahl 


Gruß
Dann gibt es auch kein Typen unverträglich.
Chaos

Anzeige
AW: InputBox nur ganze Zahlen
01.06.2007 08:02:11
Christian
Hallo,
erstmal Danke euch dreien.
Ich werde alles testen.
Gruß
Christian
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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

  1. 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
  2. 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:

  1. 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
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige