Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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
Inhaltsverzeichnis

min./max. Werte aus Textbox richtig einlesen

min./max. Werte aus Textbox richtig einlesen
14.09.2014 12:07:54
Thorsten

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

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 12:20:27
Hajo_Zi
Hallo Torsten,
Textbox enthält das was der Name sagt Text, den kannst Du nicht Zahlenmäßig vergleichen, da sind Umwandlungsfunktionen Notwendig Cdbl()

AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 12:46:16
ransi
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

Anzeige
AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 13:04:21
Thorsten
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

AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 13:26:52
Thorsten
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

AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 13:29:00
ransi
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

Anzeige
AW: min./max. Werte aus Textbox richtig einlesen
14.09.2014 13:52:47
Thorsten
Hi ransi,
jetzt klappt alles super, genau so wollte ich es.
Tausend Dank.
Viele Grüße
Thorsten

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige