Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA textbox farbe

VBA textbox farbe
Markus
Hallo,
wie kann ich die farbe einer textbox werteabhängig ändern?
ich habe eine textbox die mit einer zelle verlinkt ist. jetzt soll sich die farbe automatisch ändern wenn der wert eine bestimmte höhe erreicht. z.b. textbox oder schriftfarbe rot wenn wert größer 85%.
danke für die hilfe
markus
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA textbox farbe
20.08.2010 10:32:03
otto
Hi,
Sub TextBox1_Change()
If Textbox1 > 85 Then TextBox1.BackColor = vbRed
End Sub
otto
Textbox wertabhängig einfärben
20.08.2010 10:32:22
NoNet
Hallo Markus,
kopiere den folgenden Code in das Klassenmodul des Tabellenblattes (also: Name des Blattes im Blattregister per rechts anklicken und "Code anzeigen..." auswählen und Code in das nun geöffnete VBA-Fenster kopieren) :
Private Sub Worksheet_Calculate()
tbFarbeAendern
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
tbFarbeAendern
End Sub
Sub tbFarbeAendern()
With TextBox1
Select Case Range(.LinkedCell).Value 'die verlinkte Zelle
Case ""
.BackColor = vbWhite
Case 0 To 0.25 '0.25 = 25%
.BackColor = vbGreen
Case 0.25 To 0.75
.BackColor = vbYellow
Case Else
.BackColor = vbRed
End Select
End With
End Sub
Die Werte und die Farben musst Du entsprechend anpassen !
Gruß, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textfeld-Farbe in Excel VBA abhängig vom Wert ändern


Schritt-für-Schritt-Anleitung

Um die Farbe eines Textfeldes in Excel VBA abhängig von einem Wert zu ändern, folge diesen Schritten:

  1. Textfeld hinzufügen: Füge ein Textfeld (TextBox) zu deinem Excel-Arbeitsblatt hinzu.

  2. Zelle verlinken: Verlinke das Textfeld mit einer Zelle. Dazu klicke mit der rechten Maustaste auf das Textfeld, wähle „Eigenschaften“ und trage im Feld „LinkedCell“ die Adresse der Zelle ein.

  3. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  4. Klassisches Modul auswählen: Wähle im Projektfenster das entsprechende Arbeitsblatt aus. Klicke mit der rechten Maustaste darauf und wähle „Code anzeigen“.

  5. Code einfügen: Füge den folgenden Code in das geöffnete Fenster ein:

    Private Sub Worksheet_Calculate()
       tbFarbeAendern
    End Sub
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       tbFarbeAendern
    End Sub
    
    Sub tbFarbeAendern()
       With TextBox1
           Select Case Range(.LinkedCell).Value 'Die verlinkte Zelle
               Case ""
                   .BackColor = vbWhite
               Case 0 To 0.25 '0.25 = 25%
                   .BackColor = vbGreen
               Case 0.25 To 0.75
                   .BackColor = vbYellow
               Case Else
                   .BackColor = vbRed
           End Select
       End With
    End Sub
  6. Werte anpassen: Passe die Werte und die Farben entsprechend deinen Anforderungen an.


Häufige Fehler und Lösungen

  • Fehler: Textfeld wird nicht aktualisiert: Stelle sicher, dass das Textfeld mit der richtigen Zelle verlinkt ist. Überprüfe die „LinkedCell“-Eigenschaft.
  • Fehler: VBA-Code wird nicht ausgeführt: Vergewissere dich, dass die Makros in Excel aktiviert sind. Dies kannst du unter „Datei“ > „Optionen“ > „Trust Center“ > „Trust Center Einstellungen“ > „Makroeinstellungen“ überprüfen.

Alternative Methoden

Eine Alternative zur Verwendung von VBA ist die bedingte Formatierung, die jedoch nicht direkt für Textfelder funktioniert. Stattdessen kannst du die Hintergrundfarbe von Zellen ändern, die mit dem Textfeld verlinkt sind. Dies wird über die Registerkarte „Start“ > „Bedingte Formatierung“ > „Neue Regel“ eingerichtet.


Praktische Beispiele

Angenommen, du hast ein Textfeld, das mit der Zelle A1 verlinkt ist. Du möchtest die Farbe ändern, wenn der Wert in A1 über 85% steigt. Der oben angegebene Code erfüllt genau diesen Zweck. Hier sind die spezifischen Bedingungen:

  • Wert < 25%: Hintergrundfarbe wird grün.
  • Wert zwischen 25% und 75%: Hintergrundfarbe wird gelb.
  • Wert > 75%: Hintergrundfarbe wird rot.

Tipps für Profis

  • Nutze die vbYellow, vbGreen, vbRed und andere vordefinierte Farbcodes für eine einfache Implementierung. Du kannst auch RGB-Werte verwenden, um spezifische Farben zu definieren, z.B. RGB(255, 0, 0) für Rot.
  • Teste den Code bei verschiedenen Werten, um sicherzustellen, dass alles korrekt funktioniert.

FAQ: Häufige Fragen

1. Kann ich die Schriftfarbe der TextBox ebenfalls ändern?
Ja, du kannst die Schriftfarbe mit TextBox1.ForeColor = vbRed ändern, ähnlich wie bei der Hintergrundfarbe.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in allen modernen Excel-Versionen funktionieren, die die Verwendung von VBA unterstützen.

3. Was ist, wenn ich mehrere TextBoxen habe?
Du kannst den gleichen Code für mehrere TextBoxen verwenden, musst jedoch die Referenz auf die spezifische TextBox entsprechend anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige