Registriert seit: 25.08.2015
Version(en): 2010
Moinsen,
der Joe schon wieder :)
Ich habe eine If Bedingung, der soll mit den Textfeld rot färben, wenn die Zah in diesem Textfeld kleiner ist als die Zahl im anderen Textfeld.
Wenn die Zahl 500 ist und die andere 320, dann zeigt er grün.
Ist die Zahl allerdings 2000 und die andere 320 zeigt er rot an, obwohl die Zahl größer ist.
Ich hab den Algorithmus so verstanden das er nicht die ganze Zahl als solche nimmt, sondern nur die jeweiligen Ziffern vergleicht.
Wie kann man das Problem lösen?
Code:
'Ändert die Farbe der Zellen
If Me!txtTreibistmitPrüflast.Value > Me.txtTreibzulmitPrüflast.Value Then
Me.txtTreibistmitPrüflast.BackColor = vbRed
Else
Me.txtTreibistmitPrüflast.BackColor = vbGreen
End If
Gruß Joe
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin! :19:
In einer Textbox steht ... Text!
Wenn Text verglichen wird,
wird immer das erste Zeichen verglichen.
Dies siehst Du z.B. in der Sortierreihenfolge des Explorer:
a < b ist klar
"1" < "x" ist bereits schwieriger, hier kommt es auf den ascii-Wert an, 1 ist 49, x ist 120, also "1" < "x"
"1000" < "2" ! da 49 < 50
Langer Rede kurzer Sinn:
Wandele den Text in eine Zahl um, am einfachsten per Multiplikation mit 1:
Code:
If Me!txtTreibistmitPrüflast.Value * 1 > Me.txtTreibzulmitPrüflast.Value * 1 Then
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 29.09.2015
Version(en): 2030,5
05.10.2015, 11:39
(Dieser Beitrag wurde zuletzt bearbeitet: 05.10.2015, 11:41 von snb.)
Reicht schon:
Code:
txtTreibistmitPrüflast.BackColor = iif(val(txtTreibistmitPrüflast) > Val(txtTreibzulmitPrüflast),vbred,vbGreen)
Registriert seit: 25.08.2015
Version(en): 2010
Hey Ralf,
Danke für deine Antwort :)
Manchmal kann alles so einfach sein...
Gruß Joe
Registriert seit: 25.08.2015
Version(en): 2010
Oder doch nicht so einfach...
Wenn ich in der Textbox jetzt eine Zahl reinschreibe, aber die Zahlen wieder entferne kommt muss ich die Formel Debuggen.
Hast du auch eine Lösung dafür?
Gruß Joe
Ps: Ich Glaub wenn ich fertig bin mit meiner Excel Datei muss ich das ganze Froum auf ein Bier einladen :19:
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Hi again!
snb hat Dir ja bereits eine Lösung angeboten.
Val() wirft bei nicht in eine Zahl umwandelbaren Text eine 0 aus, so dass hier ohne Fehlerbehandlung gearbeitet werden kann.
Lies Dir mal die VBA-Hilfe zu Val() durch.
Zitat:Die Val-Funktion liest die Zeichen einer Zeichenfolge bis zum ersten Zeichen, das nicht als Teil einer Zahl interpretiert werden kann.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 25.08.2015
Version(en): 2010
Registriert seit: 29.09.2015
Version(en): 2030,5
@RPP
Ich habe dir eine PN geschickt. Hast du die gesehen ?
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
@snb:
:19:
Antwort ist unterwegs!
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)