Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

inputbox nur zahl rein

Forumthread: inputbox nur zahl rein

inputbox nur zahl rein
28.10.2006 09:26:20
tina
guten morgen,
ich möchte errechnen lassen, wie lange man noch arbeiten muss, bis die rente erreicht ist.
die daten kommen über 2 inputboxen rein.
wenn nun aber der anwender statt einer zahl, einen buchstaben oder sonst irgendwas reintippt,kommt fehlermeldung.
wie kann ich das in meinem code abfangen.

Sub Test()
Dim Alter, Rente, Restjahre As Integer
Alter = InputBox("Geben Sie Ihr Alter ein:", "Berechnung der Jahre bis zur Rente")
Rente = InputBox("Mit wieviel Jahren ist ihr Rentenalter erreicht?", "Mit wieviel Jahren...")
Restjahre = Rente - Alter
MsgBox "Sie müssen noch " & Restjahre & " Jahre bis zur Rente arbeiten", _
vbOKOnly + vbInformation, "Berechnung bis zur Rente"
End Sub

vielen dank für eure hilfe
LG Tin@
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: inputbox nur zahl rein
28.10.2006 09:41:55
Reinhard
Hi Tina,
Option Explicit
Sub Test()
Dim Alter, Rente, Restjahre As Integer
Alter = InputBox("Geben Sie Ihr Alter ein:", "Berechnung der Jahre bis zur Rente")
If Not IsNumeric(Alter) Then GoTo Fehler
Rente = InputBox("Mit wieviel Jahren ist ihr Rentenalter erreicht?", "Mit wieviel Jahren...")
If Not IsNumeric(Rente) Then GoTo Fehler
Restjahre = Rente - Alter
MsgBox "Sie müssen noch " & Restjahre & " Jahre bis zur Rente arbeiten", _
vbOKOnly + vbInformation, "Berechnung bis zur Rente"
Exit Sub
Fehler:
MsgBox "Nur Eingabe von Zahlen erlaubt, Ihre Festplatte wird jetzt formatiert."
End Sub

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: inputbox nur zahl rein
28.10.2006 10:46:39
Sigi
Hi Tina,
eine Möglichkeit wäre, eine Schleife zu bilden bis die richtige Antwort kommt:

Sub Test()
Dim Alter As Long
Dim Rente As Long
Dim Restjahre As Long
Dim Eingabe As String
Do
Eingabe = InputBox("Geben Sie Ihr Alter ein:", "Berechnung der Jahre bis zur Rente", 25)
If Eingabe = "" Then End
Loop Until IsNumeric(Eingabe)
Alter = Eingabe
Do
Eingabe = InputBox("Mit wieviel Jahren ist ihr Rentenalter erreicht?", "Mit wieviel Jahren...", 67)
If Eingabe = "" Then End
Loop Until IsNumeric(Eingabe)
Rente = Eingabe
Restjahre = Rente - Alter
MsgBox "Sie müssen noch " & Restjahre & " Jahre bis zur Rente arbeiten!", _
vbOKOnly + vbInformation, "Berechnung bis zur Rente"
End Sub

Gruß
Sigi
Anzeige
danke euch beiden :) o.t.
28.10.2006 10:48:55
tina
LG Tin@
;
Anzeige

Infobox / Tutorial

Eingaben in VBA InputBox nur als Zahlen akzeptieren


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass der Benutzer nur Zahlen in eine VBA InputBox eingibt, kannst du folgende Schritte befolgen:

  1. InputBox für das Alter erstellen:

    Dim Alter As Integer
    Alter = InputBox("Geben Sie Ihr Alter ein:", "Berechnung der Jahre bis zur Rente")
  2. Überprüfung auf numerische Eingabe:

    If Not IsNumeric(Alter) Then
       MsgBox "Nur Eingabe von Zahlen erlaubt."
       Exit Sub
    End If
  3. Wiederhole den Prozess für das Rentenalter:

    Dim Rente As Integer
    Rente = InputBox("Mit wieviel Jahren ist ihr Rentenalter erreicht?", "Mit wieviel Jahren...")
    If Not IsNumeric(Rente) Then
       MsgBox "Nur Eingabe von Zahlen erlaubt."
       Exit Sub
    End If
  4. Berechnung der verbleibenden Jahre bis zur Rente:

    Dim Restjahre As Integer
    Restjahre = Rente - Alter
    MsgBox "Sie müssen noch " & Restjahre & " Jahre bis zur Rente arbeiten."

Häufige Fehler und Lösungen

  • Fehler: Benutzer gibt Buchstaben ein.

    • Lösung: Nutze die IsNumeric-Funktion, um die Eingabe zu prüfen und eine Nachricht zu zeigen, wenn die Eingabe ungültig ist.
  • Fehler: Die Eingabe von leeren Werten führt zu Fehlern.

    • Lösung: Überprüfe, ob die Eingabe leer ist, und gib gegebenenfalls eine Warnmeldung aus.

Alternative Methoden

Eine Alternative zur Überprüfung der Eingaben ist die Verwendung einer Schleife, um sicherzustellen, dass die Eingabe gültig ist, bevor du mit den Berechnungen fortfährst. Hier ein Beispiel:

Dim Eingabe As String
Do
    Eingabe = InputBox("Geben Sie Ihr Alter ein:")
Loop Until IsNumeric(Eingabe) And Eingabe <> ""
Alter = CInt(Eingabe)

Diese Methode kann die Benutzererfahrung verbessern, indem sie so lange nach einer gültigen Eingabe fragt, bis der Benutzer eine Zahl eingibt.


Praktische Beispiele

Hier ist ein vollständiges Beispiel, das die oben genannten Punkte zusammenführt:

Sub BerechnungBisZurRente()
    Dim Alter As Long
    Dim Rente As Long
    Dim Restjahre As Long
    Dim Eingabe As String

    Do
        Eingabe = InputBox("Geben Sie Ihr Alter ein:")
    Loop Until IsNumeric(Eingabe) And Eingabe <> ""
    Alter = CLng(Eingabe)

    Do
        Eingabe = InputBox("Mit wieviel Jahren ist ihr Rentenalter erreicht?")
    Loop Until IsNumeric(Eingabe) And Eingabe <> ""
    Rente = CLng(Eingabe)

    Restjahre = Rente - Alter
    MsgBox "Sie müssen noch " & Restjahre & " Jahre bis zur Rente arbeiten."
End Sub

Tipps für Profis

  • Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind.
  • Denke daran, die Datentypen entsprechend der erwarteten Eingabe zu wählen, z.B. Long statt Integer, um Überläufe zu vermeiden.
  • Integriere Fehlerbehandlungsroutinen, um unerwartete Eingaben elegant zu handhaben.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Eingabe eine ganze Zahl ist? Um sicherzustellen, dass die Eingabe eine ganze Zahl ist, kannst du die IsNumeric-Funktion verwenden und zusätzlich prüfen, ob die Zahl ganzzahlig ist.

2. Was passiert, wenn der Benutzer die Eingabe abbricht? Wenn der Benutzer die Eingabe abbricht, gibt die InputBox eine leere Zeichenfolge zurück. Du kannst dies überprüfen und den Prozess entsprechend anpassen, z.B. durch das Beenden des Makros oder eine Warnmeldung.

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