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

Forumthread: TextBox - nur best. Werte zulassen?

TextBox - nur best. Werte zulassen?
02.02.2016 19:11:48
Frank
Hallo Zusammen!
Ich möchte bei der Eingabe von numerischen Werten in eine TextBox aber nur Werte von 0,01 - 0,99 zulassen. Geht das und wenn ja, dann schreibt mir bitte wie ich das anstellen muss!?
Danke und allen einen schönen Abend!
Gruß Frank H.

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox - nur best. Werte zulassen?
02.02.2016 20:40:20
Matthias
Hallo Frank!
Das hier wäre eine Variante. Der Code prüft bei der Eingabe. Sollten es nicht die gewünschte Werte sein, wird der Eintrag geöscht. Ichwarte da aber erst 4 Tastenschläge ab. Könnte man auch bei jedem Eintrag prüfen, aber das war am schnellsten geschrieben. :-) Den Code in den Code der Userform packen.
Viele Grüße Matthias
Private Sub TextBox1_Change()
If Len(TextBox1.text) > 3 Then
If Left(TextBox1.text, 2) = "0," And IsNumeric(Mid(TextBox1, 3, 2)) And _
Mid(TextBox1, 3, 2)  "00" And Len(TextBox1.text) = 4 Then
Else
TextBox1.text = ""
MsgBox "Bitte Werte zwischen 0,01 und 0,99 eingeben!"
End If
End If
End Sub

Anzeige
AW: TextBox - nur best. Werte zulassen?
02.02.2016 20:57:49
Frank
Hallo Matthias!
Danke, funzt bestens!
Gruß Frank H.

AW: TextBox - nur best. Werte zulassen?
02.02.2016 21:21:53
Daniel
Hi
in diesem Fall könntest du statt der TextBox für die Eingabe auch eine Listbox verwenden.
befülle diese in einer Schleife mit den erlaubten Werten und setze die Eigenschaft "MatchEntry" auf "MatchEntryComplete"
der Anwender kann dann die Werte wie in einer TextBox eintippen, aber es können nur die vorhandenen ausgewählt werden.
eine nachträgliche Prüfung mit Hinweismeldung und erneuter Eingabe ist dann nicht mehr notwendig.
als zusätzliche Eingabemöglichkeit stehen dann auch die Cursortasten zur verfügung
Gruß Daniel

Anzeige
AW: TextBox - nur best. Werte zulassen?
02.02.2016 21:28:43
Frank
Hallo Daniel!
Auch keine schlechte Idee, werde mich morgen mal daran wagen und es ausprobieren!
Für heute mache ich erst einmal Schluß und sage allen Gute Nacht!
Gruß Frank H.

AW: TextBox - nur best. Werte zulassen?
02.02.2016 22:24:40
Matthias
Der Vorschlag von Daniel ist nicht schlecht. Er meinte aber die Combobox. :-)

AW: TextBox - nur best. Werte zulassen?
02.02.2016 22:30:01
Daniel
Nein Matthias, ich meinte schon die Listbox.
Gruß Daniel

Anzeige
AW: TextBox - nur best. Werte zulassen?
03.02.2016 03:01:50
fcs
Hallo Frank,
hier eine Variante, die 3 Ereignisse für die Textbox überwacht.
So können nur Ziffern und Dezimalzeichen eingegeben werden.
Die Länge wird auf 2 Nachkommastellen begrenzt
Der Wertebereich wird wird bei der Eingabe und beim Verlassen der Textbox überwacht.
Gruß
Franz
Private Sub TextBox1_Change()
Dim strDezi As String
strDezi = Application.International(xlDecimalSeparator)
With Me.TextBox1
Select Case .Value
Case ""
Case strDezi
Case strDezi & "00", "0" & strDezi & "00"
MsgBox "unzulässiger Wert"
.Value = Left(.Value, Len(.Value) - 1)
Case Else
If (Len(.Value) - InStr(1, .Value, strDezi)) > 2 Then
.Value = Left(.Value, Len(.Value) - 1)
ElseIf (CDbl(.Value) > 0 And (CDbl(.Value)  0.99)) Then
MsgBox "unzulässiger Wert"
.Value = Left(.Value, Len(.Value) - 1)
End If
End Select
End With
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Me.TextBox1
If .Value = "" Then
ElseIf .Value = Application.International(xlDecimalSeparator) Then
Cancel = True
MsgBox "Eingabewert außerhalb Bereich 0,01 bis 0,99", vbOKOnly, "Prüfung Eingabe" _
ElseIf CDbl(.Value) = 0 Then
Cancel = True
MsgBox "Eingabewert außerhalb Bereich 0,01 bis 0,99", vbOKOnly, "Prüfung Eingabe" _
End If
End With
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'nur Zeichen für Zahlenwerte können eingegeben werden
Select Case KeyAscii
Case Asc(0) To Asc(9)
Case Asc(Application.International(xlDecimalSeparator))
If InStr(1, Me.TextBox1.Value, Application.International(xlDecimalSeparator)) > 0  _
Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Nur bestimmte Werte in Excel zulassen: Eingaben in einer TextBox beschränken


Schritt-für-Schritt-Anleitung

Um in einer Excel-TextBox nur bestimmte Werte, wie etwa numerische Werte zwischen 0,01 und 0,99, zuzulassen, kannst Du folgenden VBA-Code verwenden:

  1. Öffne Deine Excel-Datei und gehe in den VBA-Editor (Alt + F11).
  2. Füge eine UserForm hinzu, falls noch nicht vorhanden.
  3. Füge eine TextBox zur UserForm hinzu.
  4. Klicke mit der rechten Maustaste auf die TextBox und wähle "Code anzeigen".
  5. Füge den folgenden Code in das Codefenster der TextBox ein:
Private Sub TextBox1_Change()
    If Len(TextBox1.text) > 3 Then
        If Left(TextBox1.text, 2) = "0," And IsNumeric(Mid(TextBox1, 3, 2)) And _
        Mid(TextBox1, 3, 2) <> "00" And Len(TextBox1.text) = 4 Then
        Else
            TextBox1.text = ""
            MsgBox "Bitte Werte zwischen 0,01 und 0,99 eingeben!"
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und teste die UserForm.

Mit diesem Code wird jede Eingabe in der TextBox überprüft, sodass nur bestimmte Werte zugelassen werden.


Häufige Fehler und Lösungen

  • Fehler: Der eingegebene Wert wird nicht als gültig erkannt.
    Lösung: Stelle sicher, dass Du die richtige Dezimaltrennzeichen-Einstellung verwendest. Der Code verwendet das internationale Dezimalzeichen.

  • Fehler: TextBox akzeptiert ungültige Eingaben.
    Lösung: Überprüfe, ob der Code korrekt in das Change-Ereignis der TextBox eingefügt wurde.


Alternative Methoden

Eine alternative Methode, um nur bestimmte Werte in Excel zuzulassen, ist die Verwendung einer ComboBox oder ListBox:

  1. Füge eine ListBox zur UserForm hinzu.
  2. Fülle die ListBox mit den erlaubten Werten in einer Schleife.
  3. Setze die Eigenschaft "MatchEntry" auf "MatchEntryComplete", sodass der Benutzer nur vorhandene Werte auswählen kann.

Damit wird die Eingabe einfacher und sicherer, da nur die vordefinierten Werte zur Auswahl stehen.


Praktische Beispiele

Hier sind zwei praktische Beispiele zur Implementierung:

  1. TextBox mit Wertebereich 0,01 bis 0,99:

    • Verwende den oben beschriebenen Code, um sicherzustellen, dass nur Werte in diesem Bereich zulässig sind.
  2. ListBox mit vordefinierten Werten:

    Private Sub UserForm_Initialize()
       ListBox1.AddItem "0,01"
       ListBox1.AddItem "0,02"
       ListBox1.AddItem "0,03"
       ' Füge weitere Werte hinzu
    End Sub

Tipps für Profis

  • Nutze die Data Validation-Funktion in Excel, um in Zellen nur bestimmte Werte zuzulassen:

    • Wähle die Zelle aus und gehe zu "Daten" -> "Datenüberprüfung".
    • Wähle "Zulassen" und dann "Liste" aus, um eine Dropdown-Liste zu erstellen.
  • Bei komplexeren Anforderungen kannst Du auch VBA-Formeln verwenden, um die Eingaben noch strikter zu kontrollieren.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur positive Werte in Excel zugelassen werden?
Du kannst eine ähnliche Logik wie im obigen Beispiel verwenden, um sicherzustellen, dass der Wert größer als 0 ist.

2. Was kann ich tun, wenn ich eine Dropdown-Liste verwenden möchte?
Verwende die Data Validation-Funktion, um nur bestimmte Werte in einer Zelle zuzulassen, indem Du die Liste der erlaubten Werte angibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige