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

Forumthread: VBA Schriftfarbe ändern

VBA Schriftfarbe ändern
05.06.2018 11: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 11: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 11: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 11:46:34
Werner
AW: VBA Schriftfarbe ändern
05.06.2018 12: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 12:48:25
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige