Ich versuche, ein Excel-Makro zu schreiben, um die Farbe von bei Textfeld automatisch basierend auf einem Eingabewert aus einer Zelle im Blatt zu ändern. Der Code, den ich zur Zeit habe, ist:Excel-Makro Änderung TextBox Farbe
Private Sub TextBox1_Change()
'Declare Variables
Dim cell As Range
Dim color As String
'Initialize Variables
Set cell = Range("A1")
color = cell.Value
'Set TextBox Color
If color = "" Then TextBox1.BackColor = RGB(255, 255, 255) 'white
If color = "1" Then TextBox1.BackColor = RGB(255, 0, 0) 'red
If color = "2" Then TextBox1.BackColor = RGB(0, 255, 0) 'green
If color = "3" Then TextBox1.BackColor = RGB(0, 0, 255) 'blue
End Sub
Dies soll einen Wert von Zelle A1 lesen, dann die Farbe der auf diesem Wert basiert Textbox ändern. Mein Code ändert erfolgreich die Farbe des Textfelds, aber es wird nicht aktualisiert, bis ich in das Textfeld klicke und etwas eintippe. Gibt es eine Möglichkeit, die Farbe zu aktualisieren, sobald ein Wert in Zelle A1 eingegeben wird?
Wenn es einfacher wäre, dies mit einem anderen Objekt zu tun, bin ich nicht an ein Textfeld gebunden, kann aber nicht einfach eine Zelle verwenden.
'nicht gebunden an eine textbox' dann die bedingte Formatierung für eine Zelle? – findwindow
Das wäre unendlich einfacher. Leider ist eine Zelle eines der wenigen Dinge, die ich nicht benutzen kann. Es muss eine Art Excel-Objekt sein (zB Textbox, Label ect.). – drylkuch
Hmm vielleicht '' worksheet_change' event? – findwindow