Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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.

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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige