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

Forumthread: VBA Schriftfarbe ändern

VBA Schriftfarbe ändern
05.06.2018 13:18:18
Willi
Hallo zusammen,
mit folgendem Code wird bei Click auf einen CommanButton eine Farbpallette aufgerufen, der User kann eine Farbe wählen und diese wird in die Variable schriftfarbe gespeichert:
Private Sub CB_Schriftfarbe_Click()
Dim schriftfarbe As Long
Application.Dialogs(xlDialogEditColor).Show (56)
schriftfarbe = ActiveWorkbook.Colors (56)
End Sub
Ich möchte die Schriftfarbe einer Zelle mit genau dieser Farbe versehen.
Bei Cells(1, 1).Font.ColorIndex = schriftfarbe bekomme ich den Fehler Index außerhalb des gültigen Bereichs.
Wie kann ich das hinbekommen?
Gruß,
Willi
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Schriftfarbe ändern
05.06.2018 13:39:18
Werner
Hallo Willi,
nicht ColorIndex
Private Sub CB_Schriftfarbe_Click()
Dim schriftfarbe As Long
Application.Dialogs(xlDialogEditColor).Show (56)
schriftfarbe = ActiveWorkbook.Colors(56)
Cells(1, 1).Font.Color = schriftfarbe
End Sub
Gruß Werner
AW: VBA Schriftfarbe ändern
05.06.2018 13:45:39
Willi
Hallo Werner,
den Fehler hab ich auch grade herausgefunden. Es funktioniert!
Danke!
Gruß,
Willi
Anzeige
Gerne u. Danke für die Rückmeldung
05.06.2018 13:46:34
Werner
AW: VBA Schriftfarbe ändern
05.06.2018 14:15:42
Dieter(Drummer)
Hallo Will,
falls du die Schriftfarbe einer anderen Zelle ("activeCell") ändern möchtest, dann die Zeile ändern:
statt dieser Zeile:

Cells(1, 1).Font.Color = schriftfarbe

diesen Code:

ActiveCell.Font.Color = schriftfarbe

Als Schriftfarbe kann natürlich auch eine andere, als im Code definierte, genommen werden.
Gruß, Dieter(Drummer)
Anzeige
Super Tipps
05.06.2018 14:48:25
robert

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Schriftfarbe ändern in Excel


Schritt-für-Schritt-Anleitung

Um die Schriftfarbe in Excel mithilfe von VBA zu ändern, kannst du den folgenden Schritten folgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul über Einfügen > Modul.

  3. Füge den folgenden Code ein, um eine Farbauswahl zu ermöglichen und die Schriftfarbe einer bestimmten Zelle zu ändern:

    Private Sub CB_Schriftfarbe_Click()
       Dim schriftfarbe As Long
       Application.Dialogs(xlDialogEditColor).Show (56)
       schriftfarbe = ActiveWorkbook.Colors(56)
       Cells(1, 1).Font.Color = schriftfarbe ' Ändert die Schriftfarbe der Zelle A1
    End Sub
  4. Um die Schriftfarbe der aktuell ausgewählten Zelle zu ändern, kannst du den Code wie folgt anpassen:

    ActiveCell.Font.Color = schriftfarbe ' Ändert die Schriftfarbe der aktiven Zelle
  5. Speichere dein Projekt und schließe den VBA-Editor.


Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des gültigen Bereichs"

    • Ursache: Du hast ColorIndex anstelle von Color verwendet.
    • Lösung: Nutze Cells(1, 1).Font.Color = schriftfarbe anstelle von ColorIndex.
  • Funktioniert nicht bei Änderungen der aktiven Zelle

    • Wenn du die Schriftfarbe einer anderen Zelle ändern möchtest, stelle sicher, dass du ActiveCell oder die spezifische Zelle angibst.

Alternative Methoden

Falls du den VBA-Code nicht verwenden möchtest, kannst du die Schriftfarbe auch manuell ändern:

  1. Markiere die Zelle, deren Schriftfarbe du ändern möchtest.
  2. Gehe zur Registerkarte Start.
  3. Klicke auf das Symbol für die Schriftfarbe und wähle die gewünschte Farbe aus.

Praktische Beispiele

  • Schriftfarbe auf Rot setzen:

    Cells(1, 1).Font.Color = RGB(255, 0, 0) ' Setzt die Schriftfarbe auf rot
  • Schriftfarbe ändern basierend auf einer Bedingung:

    If Cells(1, 1).Value > 100 Then
       Cells(1, 1).Font.Color = RGB(0, 255, 0) ' Grün für Werte über 100
    Else
       Cells(1, 1).Font.Color = RGB(255, 0, 0) ' Rot für Werte 100 oder weniger
    End If

Tipps für Profis

  • Nutze RGB-Werte, um spezifische Farben zu setzen, anstatt nur die vordefinierten Farbnamen zu verwenden.
  • Experimentiere mit der ColorIndex-Eigenschaft, um auf die Farbpalette von Excel zuzugreifen.
  • Du kannst auch die Schriftfarbe in HTML ändern, indem du die entsprechenden RGB-Werte in den HTML-Code einfügst.

FAQ: Häufige Fragen

1. Wie kann ich die Schriftfarbe für mehrere Zellen gleichzeitig ändern?
Du kannst eine Schleife verwenden, um die Schriftfarbe für eine Reihe von Zellen zu ändern:

Dim i As Integer
For i = 1 To 10
    Cells(i, 1).Font.Color = RGB(0, 0, 255) ' Setzt die Schriftfarbe auf Blau für die Zellen A1 bis A10
Next i

2. Kann ich die Schriftfarbe basierend auf dem Zellinhalt ändern?
Ja, du kannst Bedingungen verwenden, um die Schriftfarbe dynamisch zu ändern, wie im Beispiel im Abschnitt "Praktische Beispiele" gezeigt.

Anzeige
Anzeige