Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textbox prüfen ob numerisch

Forumthread: Textbox prüfen ob numerisch

Textbox prüfen ob numerisch
06.08.2002 18:11:39
marcus
Hallo,
es soll eine Textbox überprüft werden, ob sie numerisch ist, oder ob der Inhalt "" ist. Falls eines der beiden zutrifft, soll der Wert auf null gesetzt werden. Meine Idee war:

If IsNumeric (UserForm1.TextBox1.Value) = False Or "" Then
Range("b27").Value = .TextBox1.Value + Range("b27").Value _
Else: TextBox1.Value = 0

Leider aber ein Griff ins Klo...
Oder kann ich für mehrere Textbox-Elemente (ca 50), die auf bestehende Zellwerte addiert werden sollen ohne größeren Aufwand
eingeben, dass nur numerische Werte zugelassen werden sollen.
Der Fehler liegt bei der Addition von "" zu Zahlen...
Bitte helft einem Stümper...
Dankeschön schonmal!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Textbox prüfen ob numerisch
06.08.2002 18:22:38
Hajo_Zi
Hallo Marcus

mal als erster Ansatz, prüfe die Eingaben gleich beim Eingeben auf numerisch

Gruß Hajo

Re: Textbox prüfen ob numerisch
06.08.2002 18:40:21
Marcus
Hallo Hajo und danke für Deine "erste Hilfe-Maßnahme"...

leider konnte ich diese nicht so gut verwerten...
ich bin Neuling (ca. 3 Wochen vba) und an meinem ersten (für mich) größeren Projekt dran. Dein Kollege ist heute morgen schon an mir verzweifelt glaube ich...

Folgendes:

Es sollen Textboxe Zahlen eingegeben werden und in Zellen geschrieben werden. Die Zellen sollen sollen aber nicht überschrieben, sondern addiert werden. im Prinzip habe ich das auch hinbekommen, aber es hakt daran, dass wenn verschiedene Zellen schon gefüllt sind und ich eine leere Zelle in die TB schreibe und "sende" ein Fehler auftritt. Offenbar können keine leeren Tbs zu Zahlen addiert werden. Da in meiner Userform aber 50 verschiedene Tbs sind möchte ich ungern für alle nochmal den Code verändern...
Gibt es da eine Möglichkeit?
Gruß, Marcus

Anzeige
Re: Textbox prüfen ob numerisch
06.08.2002 18:48:32
Hajo_Zi
Hallo Marcus

so wie du es jetzt beschreibts kommts es mir Bekannt vor. Haben wir uns nicht schon vor paar Tagen darüber unterhalten.Schreibe für jede Textbox folgendencode Textboxname natürlich angepast

Textboxen können nicht Addiert werden, da es ja Text ist. Der Inhalt muß umgwwandelt werden
Label1.Caption =Cdbl(Textbox1)+Cdbl(Textbo2)+Cdbl(Textbox3)

da mit AfterUpdate jeder Textbox ein 0 Zugewiesen wurde dürfte kein Fehler kommen bzw. falls nicht Alle ausgewählt werden mußt Du zu Beginn eine 0 zuweisen.

Die anderen Probleme sind mir nicht ganz klar. Bei Fragen zu Code sollte der Code ins Forum, dann braucht nicht bei Null begonnen werden.

Gruß Hajo

Anzeige
Re: Textbox prüfen ob numerisch
06.08.2002 18:54:30
Marcus
Gut...dankeschön.
Ich werde mal damit mein Glück versuchen...
Gruß
Marcus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Excel VBA auf numerische Werte prüfen


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob der Inhalt einer Textbox in Excel VBA numerisch ist, kannst du den folgenden Code verwenden. In diesem Beispiel gehen wir davon aus, dass du eine Userform mit mehreren Textboxen hast, die in Zellen addiert werden sollen.

  1. Öffne den VBA-Editor (Alt + F11).

  2. Füge eine Userform hinzu und platziere die Textboxen, die du überprüfen möchtest.

  3. Füge den folgenden Code in das Codefenster der Userform ein:

    Private Sub TextBox1_AfterUpdate()
        If Not IsNumeric(TextBox1.Value) Or TextBox1.Value = "" Then
            TextBox1.Value = 0
        Else
            Range("B27").Value = Range("B27").Value + CDbl(TextBox1.Value)
        End If
    End Sub
  4. Wiederhole Schritt 3 für jede Textbox oder verwende eine Schleife, um den Code zu optimieren.


Häufige Fehler und Lösungen

  • Fehler: "Typen unverträglich" beim Addieren.

    • Lösung: Stelle sicher, dass der Inhalt der Textbox numerisch ist, bevor du ihn addierst. Verwende CDbl() zur Umwandlung in einen numerischen Wert.
  • Fehler: Leere Textbox führt zu einem Fehler.

    • Lösung: Setze den Wert der Textbox auf 0, wenn er nicht numerisch oder leer ist (siehe Schritt-für-Schritt-Anleitung).

Alternative Methoden

Eine alternative Methode zur Überprüfung der Textboxen könnte die Verwendung der KeyPress-Ereignisse sein. Damit kannst du die Eingabe in der Textbox bereits während der Eingabe überprüfen.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> vbBack Then
        KeyAscii = 0 ' Verhindert die Eingabe von nicht numerischen Zeichen
    End If
End Sub

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du den Code für mehrere Textboxen in einer Schleife nutzen kannst:

Private Sub UpdateValues()
    Dim i As Integer
    Dim txtBox As MSForms.TextBox
    For i = 1 To 50 ' Angenommen, du hast 50 Textboxen
        Set txtBox = Me.Controls("TextBox" & i)
        If Not IsNumeric(txtBox.Value) Or txtBox.Value = "" Then
            txtBox.Value = 0
        Else
            Range("B" & (27 + i)).Value = Range("B" & (27 + i)).Value + CDbl(txtBox.Value)
        End If
    Next i
End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies hilft, Tippfehler in Variablennamen zu vermeiden.
  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um unerwartete Fehler zu vermeiden, und überprüfe den Fehlerstatus anschließend.
  • Leistungsoptimierung: Wenn du mit vielen Textboxen arbeitest, kann es sinnvoll sein, die Userform zu optimieren, indem du Berechnungen nur bei Bedarf durchführst.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden können?
Durch die Verwendung des KeyPress-Ereignisses kannst du bereits während der Eingabe überprüfen, ob die Zeichen numerisch sind.

2. Was passiert, wenn ich eine nicht numerische Eingabe habe?
In diesem Fall wird der Wert der Textbox auf 0 gesetzt, sodass keine Fehler bei der Addition auftreten.

3. Wie kann ich den Code für viele Textboxen effizienter gestalten?
Du kannst eine Schleife verwenden, um den Code für alle Textboxen zu wiederholen, anstatt für jede Textbox den gleichen Code zu schreiben.

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