Anzeige
Archiv - Navigation
1400to1404
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

TextBox farbe ändern

TextBox farbe ändern
01.01.2015 20:08:17
paul

Hallo,
ich möchte nach der Eingabe in der TextBox die Farbe bedingt formatieren
leider funktioniert es so nicht:
es wird hier immer die vorherige Eingabe für die Formatierung verwendet


Private Sub maß1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
maß1.BackColor = RGB(256, 256, 256)
If KeyCode = vbKeyReturn Then GoTo m
Worksheets("werte").Activate
GoTo ende
m:
Dim min1 As Range
Dim max1 As Range
Dim eingabe As Range
Set eingabe = Worksheets("werte").Range("D30")
Set min1 = Worksheets("werte").Range("A33")
Set max1 = Worksheets("werte").Range("A34")
If eingabe > max1 Then GoTo rot
If eingabe < min1 Then GoTo rot
GoTo grün
rot:
maß1.BackColor = RGB(256, 0, 0)
GoTo ende
grün:
maß1.BackColor = RGB(0, 256, 0)
ende:
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox farbe ändern
02.01.2015 03:21:47
Daniel
Hi
das KeyDown-Event tritt ein, bevor die Taste gedrückt wird (zumindest kann man sich das so vorstellen).
du solltest hier das KeyUp-Event verwenden, welches nach dem Tastendruck eintritt.
Gruss Daniel

AW: TextBox farbe ändern
02.01.2015 11:08:31
paul
Hallo
habe KeyDown mit KeyUp ersetzt leider funktioniert es noch immer nicht

AW: TextBox farbe ändern
02.01.2015 12:45:43
Daniel
Hi
da sind auch noch einige ungereimtheiten im Code.
1. du verwendest Gotos, die sind in Basic so modern wie Breitcordschlaghosen
2. du prüfst eine Excelzelle. Solltest du du nicht den Textboxinhalt für die Prüfung verwenden?
3. du willst die Prüfung erst ausführen, wenn die Eingabe abgeschlossen ist. In diesem Fall wäre das EXIT- oder AFTERUPDATE-Event das geeignetere, weils dieses erst läuft wenn du die Zelle verlassen willst. (für AcitveX auf Blättern: LostFocus)
4. musst du beachten, dass Textboxen immer Text enthalten. Wenn du den Textboxinhalt mit einer Zahl vergelichen willst, musst du ihn erst mit CLng oder CDbl in eine Zahl wandeln.
Gruß Daniel

Anzeige
AW: TextBox farbe ändern
02.01.2015 12:59:43
paul
Hallo Daniel
meine Kenntnisse sind leider bescheiden. Vielleicht kannst du mir mein Programm so bearbeiten das es läuft
Vielen Dank

AW: TextBox farbe ändern
02.01.2015 13:39:13
Daniel
ohne die Datei dazu schwierig.
Gruß Daniel

AW: TextBox farbe ändern
02.01.2015 14:26:32
Daniel
Hi
verwende folgenden Code anstelle des KeyUp bzw KeyDown-Events.
Er läuft erst, wenn du auf ein anderes Steuerelement wechselst.
Private Sub maß1_AfterUpdate()
With maß1
If Not IsNumeric(.Text) Then
.BackColor = vbWhite
ElseIf CDbl(.Text) < Range("A32").Value Then
.BackColor = vbRed
ElseIf CDbl(.Text) > Range("A33").Value Then
.BackColor = vbRed
Else
.BackColor = vbGreen
End If
End With
End Sub
mit folgendem Code könntest du auch erreichen, dass der Anwender erst weiterklicken kann, wenn er eine gültige Eingabe gemacht hat:
Private Sub maß1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = True
With maß1
If Not IsNumeric(.Text) Then
.BackColor = vbWhite
ElseIf CDbl(.Text) < Range("A32").Value Then
.BackColor = vbRed
ElseIf CDbl(.Text) > Range("A33").Value Then
.BackColor = vbRed
Else
.BackColor = vbGreen
Cancel = False
End If
End With
If Cancel Then MsgBox "Bitte gültigen Wert eingeben."
End Sub
Gruß Daniel

Anzeige
AW: TextBox farbe ändern
02.01.2015 15:26:51
paul
Hallo Daniel
Vielen Dank
es funzt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige