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

Forumthread: TextBox nur Zahlen zulassen

TextBox nur Zahlen zulassen
Heinz
Hallo Leute
Ich möchte mit unteren Code erzwingen,das in TextBoxE nur Zahlen eingetragen werden müssen.
Zb. 1 oder 12.5
Leider kommt jetzt immer die MsgBox.
Könnte mir bitte jemand weiterhelfen?
Gruß
Heinz
Private Sub CommandButton1_Click()
Dim i As Integer
Dim zeile As Integer
If Not TextBoxE Like "#.#" Then
TextBoxE.SetFocus
MsgBox "Eingabe in Textbox ist Falsch"
Exit Sub
End If

Anzeige

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

Betreff
Benutzer
Anzeige
AW: TextBox nur Zahlen zulassen
09.01.2011 14:24:02
Reinhard
Hallo Heinz,

Private Sub TextBox1_Change()
If Not IsNumeric(TextBox1.Text) And TextBox1.Text  "" Then
MsgBox "..."
TextBox1.Activate
End If
End Sub

Gruß
Reinhard
AW: TextBox nur Zahlen zulassen
09.01.2011 16:23:00
ransi
Hallo HEinz
Versuch mal sowas:
Option Explicit



Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Dim Regex As Object
    Set Regex = CreateObject("vbScript.Regexp")
    With Regex
        .Pattern = "(^\d+\.\d+$|^\d+\.$|^\d+$)"
        If .test(TextBox1.Text & Chr(KeyAscii)) = False Then KeyAscii = 0
    End With
End Sub


So kannst du "online"verhindern das etwas anderes als ZahlPunktZahl oder ZahlPunkt oder Zahl eingetragen wird.
ransi
Anzeige
AW: Danke Reinhard & Ransi
09.01.2011 16:35:42
Heinz
Recht herzlichen Dank,euch beide.
Echt immer Super wie ihr mich unterstützt.
Nochmals Danke
Heinz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

TextBox nur Zahlen zulassen in Excel


Schritt-für-Schritt-Anleitung

Um in einer Excel VBA TextBox nur Zahlen oder Zahlen mit Komma zuzulassen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne dein Excel-Dokument und gehe in den VBA-Editor (Alt + F11).
  2. Füge ein UserForm hinzu oder öffne ein bestehendes.
  3. Ziehe eine TextBox (z.B. TextBoxE) und einen CommandButton (z.B. CommandButton1) auf das UserForm.
  4. Füge den folgenden Code in das Codefenster des UserForms ein:
Private Sub CommandButton1_Click()
    If Not IsNumeric(TextBoxE.Text) Then
        MsgBox "Eingabe in TextBox ist falsch. Bitte nur Zahlen eingeben."
        TextBoxE.SetFocus
    End If
End Sub

Private Sub TextBoxE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 46 Then
        KeyAscii = 0 ' Verhindert die Eingabe von ungültigen Zeichen
    End If
End Sub
  1. Speichere dein Projekt und teste die Eingabe in der TextBox.

Mit diesem Code wird sichergestellt, dass nur Zahlen und das Komma eingegeben werden können.


Häufige Fehler und Lösungen

  • Fehler: MsgBox erscheint auch bei gültigen Eingaben.

    • Lösung: Überprüfe, ob der IsNumeric-Befehl korrekt verwendet wird. Stelle sicher, dass die TextBox nicht leer ist, bevor die Prüfung erfolgt.
  • Fehler: Eingaben wie "12.34" werden nicht akzeptiert.

    • Lösung: Stelle sicher, dass der KeyPress-Event korrekt implementiert ist, um Punkte und Zahlen zuzulassen.

Alternative Methoden

Eine alternative Methode, um sicherzustellen, dass nur Zahlen in eine TextBox eingegeben werden, ist die Verwendung von Regular Expressions. Hier ist ein Beispiel:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Dim Regex As Object
    Set Regex = CreateObject("vbScript.RegExp")
    With Regex
        .Pattern = "^\d*\.?\d*$" ' Erlaubt Zahlen und optional einen Dezimalpunkt
        If Not .test(TextBox1.Text & Chr(KeyAscii)) Then KeyAscii = 0
    End With
End Sub

Diese Methode erlaubt auch die Eingabe von Zahlen mit einem Komma oder Punkt.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die Eingabe in einer TextBox steuern kannst:

  • Beispiel 1: Nur ganze Zahlen zulassen.
Private Sub TextBoxE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
        KeyAscii = 0
    End If
End Sub
  • Beispiel 2: Zahlen mit Komma zulassen.
Private Sub TextBoxE_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 46 Then
        KeyAscii = 0
    End If
End Sub

Tipps für Profis

  • Verwende die KeyPress-Ereignisse, um die Eingabe in Echtzeit zu validieren. Dies verbessert die Benutzererfahrung.
  • Denke daran, die TextBox-Eigenschaft Text zu verwenden, um den aktuellen Text abzufragen.
  • Achte darauf, dass die TextBox nicht den Excel-Textüberlauf zulässt, wenn die Eingaben über die maximale Breite hinausgehen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die TextBox nur positive Zahlen zulässt?
Du kannst die Eingaben mit einer Bedingung überprüfen, die negative Zahlen ausschließt. Beispielsweise:

If Not IsNumeric(TextBoxE.Text) Or Val(TextBoxE.Text) < 0 Then
    MsgBox "Bitte nur positive Zahlen eingeben."
End If

2. Kann ich die Eingabe auf einen bestimmten Wertebereich beschränken?
Ja, du kannst das mit einer zusätzlichen Bedingung im Code überprüfen:

If Val(TextBoxE.Text) < 1 Or Val(TextBoxE.Text) > 100 Then
    MsgBox "Bitte einen Wert zwischen 1 und 100 eingeben."
End If

Folge diesen Anleitungen und Tipps, um sicherzustellen, dass deine Excel VBA TextBox nur die gewünschten Eingaben akzeptiert.

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