Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dim Zelle As Range, Farbe As Long

Forumthread: Dim Zelle As Range, Farbe As Long

Dim Zelle As Range, Farbe As Long
21.08.2008 10:04:00
sockel939
Hallo,
sagt mal wie bekomme ich den code dazu nicht die Zellenfarbe zu ändern sondern die Schriftfarbe.
Habe mal statt Interior , Font eingetragen dann bleibt er aber Hängen.
Dim Zelle As Range
Dim Farbe As Long
For Each Zelle In Range("m2:m1000")
Select Case Zelle.Value
Case "Heute"
Farbe = 45
Case "Morgen"
Farbe = 42
Case "Mittag"
Farbe = 15
Case "Abend"
Farbe = 43
End Select
Range(Zelle.Offset(0, -Zelle.Column + 1), Zelle.Offset(0, -1)).Interior.ColorIndex = Farbe
Next Zelle
Danke.

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Welche Fehlermeldung?
21.08.2008 10:22:40
Tobias
Hallo Sockel!
Range("A1").Font.ColorIndex = 45 klappt bei mir. Welche Fehlermeldung kommt den?
Schönen Gruß, Tobias
http://www.vba-blog.de/

AW: Dim Zelle As Range, Farbe As Long
21.08.2008 10:26:00
fcs
Hallo Sockel,
indem du "Interior" durch "Font" ersetzt.
Falls das bei dir zu einem Feher führt, dann hast du wahrscheinlich einen Fehler bei der Code-Eingabe.
Bei mir (Excel 2003) funktioniert der Code bei entsprechender Änderung.
Gruß
Franz

Anzeige
AW: .Font.ColorIndex
21.08.2008 10:45:00
Erich
Hallo Vorname(?),
das es mit Font statt Interior klappen sollte, weißt du ja jetzt schon.
Was ist, wenn in M5 keine der vier abgeprüften Tageszeiten steht?
Nach deinem Code bekommt der Bereich in dieser Zeile die Schriftfarbe,
die zuletzt ausgewählt wurde. Soll das so sein?
Noch eins:
Zelle.Offset(0, -Zelle.Column + 1)
kann man wohl einfacher und verständlicher so schreiben:
Cells(Zelle.Row, 1)
also die Zelle in Spalte A der jeweiligen Zeile.
Probier mal

Sub tst()
Dim rngZ As Range, intFarbe As Integer
For Each rngZ In Range("m2:m1000")
Select Case rngZ.Value
Case "Heute":  intFarbe = 45
Case "Morgen": intFarbe = 42
Case "Mittag": intFarbe = 15
Case "Abend":  intFarbe = 43
Case Else:     intFarbe = 0
End Select
If intFarbe > 0 Then _
Range(Cells(rngZ.Row, 1), rngZ.Offset(0, -1)).Font.ColorIndex = intFarbe
Next rngZ
End Sub

Hier wird die Farbe nur in den Zeilen geändert, in denen eine der Tageszeiten steht.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: .Font.ColorIndex
21.08.2008 14:15:00
sockel939
Danke an alle !
Habs jetzt auch hinbekommen, war ein Denkfehler von mir :-)
Erich deinen Code werde ich auch mit einbinden, danke dir!
Gruß
sockel939
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Schriftfarbe ändern in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Schriftfarbe einer Zelle in Excel VBA zu ändern, kannst du den folgenden Code verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul ein, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub SchriftfarbeAendern()
       Dim Zelle As Range
       Dim Farbe As Long
    
       For Each Zelle In Range("m2:m1000")
           Select Case Zelle.Value
               Case "Heute": Farbe = 45
               Case "Morgen": Farbe = 42
               Case "Mittag": Farbe = 15
               Case "Abend": Farbe = 43
               Case Else: Farbe = 0
           End Select
    
           If Farbe > 0 Then
               Zelle.Font.ColorIndex = Farbe
           End If
       Next Zelle
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, indem du ALT + F8 drückst und SchriftfarbeAendern auswählst.


Häufige Fehler und Lösungen

  1. Fehler: "Typen unverträglich"

    • Dieser Fehler tritt auf, wenn du versuchst, einen Wert einem falschen Datentyp zuzuweisen. Stelle sicher, dass die Variablen korrekt deklariert sind, z.B. Dim Farbe As Long.
  2. Fehler: Schriftfarbe ändert sich nicht

    • Überprüfe, ob der Zellenwert tatsächlich mit "Heute", "Morgen", "Mittag" oder "Abend" übereinstimmt. Wenn kein passender Fall gefunden wird, bleibt die Schriftfarbe unverändert.
  3. Fehler bei der Verwendung von Interior

    • Stelle sicher, dass du Font.ColorIndex statt Interior.ColorIndex verwendest, um die Schriftfarbe zu ändern.

Alternative Methoden

Wenn du die Schriftfarbe ändern möchtest, kannst du auch die Cells-Methode verwenden, um den Zugriff auf die Zellen zu vereinfachen. Hier ist ein Beispiel:

Cells(Zelle.Row, 1).Font.ColorIndex = Farbe

Dies ermöglicht dir, auf die Zelle in der ersten Spalte der aktuellen Zeile zuzugreifen, ohne die Offset-Methode zu verwenden.


Praktische Beispiele

Hier ist ein einfaches Beispiel, das die Schriftfarbe basierend auf dem Inhalt der Zellen in der Spalte M ändert:

Sub BeispielSchriftfarbe()
    Dim Zelle As Range
    Dim Farbe As Long

    For Each Zelle In Range("m2:m1000")
        Select Case Zelle.Value
            Case "Heute": Farbe = 45
            Case "Morgen": Farbe = 42
            Case "Mittag": Farbe = 15
            Case "Abend": Farbe = 43
            Case Else: Farbe = 0
        End Select

        If Farbe > 0 Then
            Zelle.Font.ColorIndex = Farbe
        End If
    Next Zelle
End Sub

In diesem Beispiel wird die Schriftfarbe in der entsprechenden Zeile geändert, wenn der Inhalt in der Zelle mit einer der Tageszeiten übereinstimmt.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Tippfehler und unerwartete Fehler zu vermeiden.

  • Verwende With...End With-Blöcke, um den Code zu optimieren, wenn du mehrmals auf dieselbe Zelle zugreifst:

    With Zelle
       .Font.ColorIndex = Farbe
    End With
  • Halte deine VBA-Projekte organisiert, indem du Kommentare hinzufügst, die die Funktionsweise deines Codes erklären.


FAQ: Häufige Fragen

1. Wie ändert man die Schriftfarbe für eine ganze Zeile?
Um die Schriftfarbe für eine gesamte Zeile zu ändern, kannst du Rows(Zelle.Row).Font.ColorIndex = Farbe verwenden.

2. Funktioniert dieser Code in Excel 365?
Ja, der Code funktioniert in Excel 365 sowie in älteren Versionen wie Excel 2003.

3. Kann ich mehrere Farben in einer Schleife verwenden?
Ja, du kannst mehrere Case-Anweisungen verwenden, um verschiedene Bedingungen für verschiedene Farben festzulegen, wie im obigen Beispiel gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige