min./max. Werte aus Textbox richtig einlesen
Betrifft: min./max. Werte aus Textbox richtig einlesen
von: Thorsten
Geschrieben am: 14.09.2014 12:07:54
Hallo,
habe ein Problem und weiß nicht mehr weiter, alles seltsam :-)
Ich habe 3 Textboxen, Textbox 1, Textbox2, Textbox3, das ganze wird in einer Userform
ausgeführt.
In Textbox 2 wird der Min. Wert 6,5 und in Textbox3 der Max Wert 8,5 eingetragen.
Wenn ich nun in meine Textbox1 einen Wert zwischen 6,5 und 8,5 eingebe soll die Textbox 1 Schrift schwarz bleiben,komme ich unter Min. oder über Max. dann soll meine Textbox1 Schrift rot werden.
Bei den oben genannten Min./Max. Werten (6,5-8,5)klappt alles einwandfrei, sowie bei ca. 20 weiteren Min/Max Werten.
Jetzt kommt es:
Gebe ich als Min. 8,0 und Max: 10,0 ein , spielt der Code verrückt, Eingabe in Textbox1 wird direkt rot geschrieben obwohl sie im Range liegen, usw.
Werte die Problem machen:
Min. Max.
8,0-10,0
20,0-12,0
9,5-12,5
30,0-33,0
7,5-10,5
9,0-12,0
Rest noch nicht bekannt.
Mein Code im Anschluss.
Ich hoffe Ihr könnt mir helfen, ich hab da echt einen Hänger, da es bei vielen Werten geht, nur bei manchen nicht.
Vielen Dank schon mal für die Mühe
Gruß Thorsten
Private Sub TextBox1_Change()
If TextBox1 >= TextBox2 Then
TextBox1.ForeColor = &H80000012
End If
If TextBox1 < TextBox2 Then
TextBox1.ForeColor = &HFF& 'rot
End If
If TextBox1 <= TextBox3 Then
TextBox1.ForeColor = &H80000012
End If
If TextBox1 > TextBox3 Then
TextBox1.ForeColor = &HFF& 'rot
End If
End Sub
Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: Hajo_Zi
Geschrieben am: 14.09.2014 12:20:27
Hallo Torsten,
Textbox enthält das was der Name sagt Text, den kannst Du nicht Zahlenmäßig vergleichen, da sind Umwandlungsfunktionen Notwendig Cdbl()

Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: ransi
Geschrieben am: 14.09.2014 12:46:16
Hallo thorsten
versuch mal so:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
Option Explicit
Private Sub TextBox1_Change()
Select Case CDbl(TextBox1.Text)
Case CDbl(TextBox2.Text) To CDbl(TextBox3.Text)
TextBox1.ForeColor = vbRed
Case Else
TextBox1.ForeColor = vbBlack
End Select
End Sub
ransi
Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: Thorsten
Geschrieben am: 14.09.2014 13:04:21
Hallo ransi,
klappt leider auch nicht, Wert wird direkt rot geschrieben und wenn ich die Textbox1 leere
für einen neuen Wert einzutragen bekomme ich einen Laufzeit Fehler
Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: Thorsten
Geschrieben am: 14.09.2014 13:26:52
hallo ransi,
noch ein Nachtrag.
Mit deinem Code wird der wert zwischen Min un Max rot gemacht.
Was darüber und darunter liegt wird schwarz, ist wohl verdreht und das Problem halt,
wenn ich die Eingabe Feld (TexBox 1) ganz leer mache, kommt ei Laufzeit Fehler.
Sorry bin Anfänger
Gruß Thorsten
Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: ransi
Geschrieben am: 14.09.2014 13:29:00
Hallo
DAs kommt daher das "" kein Zahl sondern Text ist.
TEste mal dieses:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
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
Else:
On Error Resume Next
Select Case CDbl(TextBox1.Text & Chr(KeyAscii))
Case CDbl(TextBox2.Text) To CDbl(TextBox3.Text)
TextBox1.ForeColor = vbBlack
Case Else
TextBox1.ForeColor = vbRed
End Select
On Error GoTo 0
End If
End With
End Sub
ransi
Betrifft: AW: min./max. Werte aus Textbox richtig einlesen
von: Thorsten
Geschrieben am: 14.09.2014 13:52:47
Hi ransi,
jetzt klappt alles super, genau so wollte ich es.
Tausend Dank.
Viele Grüße
Thorsten
Beiträge aus den Excel-Beispielen zum Thema "min./max. Werte aus Textbox richtig einlesen"