Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schriftfarbe einer Zelle auslesen

Forumthread: Schriftfarbe einer Zelle auslesen

Schriftfarbe einer Zelle auslesen
20.10.2002 10:10:56
Martin Springer
Hallo,

mit dem Befehl

Sub farbe()
MsgBox ActiveCell.Font.Color
End Sub

kann ich die Schriftfarbe einer Zelle auslesen. Es gibt jedoch auch die Möglichkeit, dass mehrere Schriftfarben in einer einzigen Zelle benutzt werden! Mit welchem Makro kann kann ich abfragen, wie viele Schriftfarben in der Zelle benutzt werden?
Mit welchem zweiten Makro kann ich abfragen, welche Schriftteile welche Schriftfarben benutzen?

Es ist für mich wirklich wichtig! Ich würde mich über Vorschläge sehr freuen!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Schriftfarbe einer Zelle auslesen
20.10.2002 11:49:27
Jan Kittler
Hallo Martin,

das sollte Dir den Colorindex des i. Zeichens der aktiven Zelle zurückgeben:

ActiveCell.Characters(Start:=i, Length:=1).Font.ColorIndex

Jan

Mein Probelm gestaltet sich etwas komplzieter
20.10.2002 13:21:45
Martin Springer
hallo jan,

dank dir für Deine Hilfe. das zweite problem konnte ich inzwischen selber lösen:

Sub test()
For i = 1 To Len(ActiveCell)
If i > 1 Then
If f <> ActiveCell.Characters(Start:=i, Length:=1).Font.Color Then

e = i - 1
MsgBox Mid(ActiveCell, a, e - a) 'a = Start, e-a = Länge
a = i
ElseIf i = Len(ActiveCell) Then

MsgBox Mid(ActiveCell, a, i)

End If
Else: a = 1
End If

f = ActiveCell.Characters(Start:=i, Length:=1).Font.Color

Next i
End Sub

Jetzt kann ich zwar den Text in der Zelle "formatabhängig" auslesen, jedoch muss ich unbedingt herausfinden, ob der in der Zelle befindliche Text unterschiedlich formatiert wurde! Wie mache ich das. Die Count-Funktion scheint hier nicht anwendbar!

Anzeige
Re: Mein Probelm gestaltet sich etwas komplzieter
20.10.2002 13:55:04
Hajo_Zi
Hallo Martin

auf der Grundlage von Deinem Code und Jan seiner zuarbeit habe ich folgenden Code entwickelt. Für die Standardfarben von Excel

Re: Mein Probelm gestaltet sich etwas komplzieter
20.10.2002 16:09:40
Martin Springer
Hallo Hajo,

vielen, vielen Dank für Deine Bemühung! Du hast ja wirklich einen riesigen Aufwand betrieben! Ich bin gerade dabei ein Programm zu schreiben, dass mein Excel-Tabelle in eine html-Seite überführt! Im Gegensatz zu den bereits existierenden Konvertierungsprogrammen, soll mein Programm alle -auf Wunsch -Schriftformate entsprechend umwandeln. Inzwischen habe ich schon selber eine Lösung des vorhin beschriebenen Problems gefunden:

Sub test()
For i = 1 To Len(ActiveCell)
If i > 1 Then
If f <> ActiveCell.Characters(Start:=i, Length:=1).Font.Color Then

e = i - 1
MsgBox Mid(ActiveCell, a, e - a) 'a = Start, e-a = Länge
a = i
ElseIf i = Len(ActiveCell) Then

If i - a = Len(ActiveCell) - 1 Then MsgBox "Die Zelle besteht aus nur einer Farbe!"

MsgBox Mid(ActiveCell, a, i)

End If
Else: a = 1
End If

f = ActiveCell.Characters(Start:=i, Length:=1).Font.Color

Next i
End Sub

Jedoch habe ich auch noch andere Probleme, an denen ich zu knappern habe. Zum Beispiel bei der Diagramm-Export-Funktion! Hast Du eine Ahnung, wie ich per Excel abfragen kann, ob der GIF-Format bei ber Excel-Installation installiert wurde?

MfG

Martin

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Schriftfarben und Zellfarben in Excel auslesen


Schritt-für-Schritt-Anleitung

Um die Schriftfarbe einer Zelle in Excel auszulesen, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke auf Einfügen und dann auf Modul.
  3. Gib den folgenden Code ein:

    Sub SchriftfarbeAuslesen()
       MsgBox ActiveCell.Font.Color
    End Sub
  4. Führe den Code aus:

    • Stelle sicher, dass die gewünschte Zelle aktiv ist und drücke F5, um das Makro auszuführen. Ein Dialogfeld zeigt die Schriftfarbe der Zelle an.

Um weitere Informationen wie die Anzahl der verwendeten Schriftfarben in einer Zelle auszulesen, kannst Du diesen Code verwenden:

Sub AnzahlSchriftfarben()
    Dim f As Long
    Dim i As Long
    Dim count As Long
    Dim colorArray As Collection
    Set colorArray = New Collection

    For i = 1 To Len(ActiveCell)
        f = ActiveCell.Characters(Start:=i, Length:=1).Font.Color
        On Error Resume Next
        colorArray.Add f, CStr(f)
        On Error GoTo 0
    Next i

    MsgBox "Anzahl der Schriftfarben: " & colorArray.Count
End Sub

Häufige Fehler und Lösungen

  • Fehler: Der VBA-Editor lässt sich nicht öffnen.

    • Lösung: Stelle sicher, dass die Entwicklertools in den Excel-Optionen aktiviert sind.
  • Fehler: Der Code gibt einen Fehler zurück, wenn keine Zelle ausgewählt ist.

    • Lösung: Überprüfe, ob eine Zelle aktiv ist, bevor Du das Makro ausführst.
  • Fehler: Die Schriftfarbe wird nicht korrekt angezeigt.

    • Lösung: Verwende anstelle von ActiveCell.Font.Color den Code ActiveCell.Font.ColorIndex, um den ColorIndex der Schriftfarbe zu erhalten.

Alternative Methoden

Wenn Du die Schriftfarbe ohne VBA auslesen möchtest, kannst Du die Funktion ZELL() verwenden, um Informationen über die Zelle zu erhalten. Beachte jedoch, dass ZELL() keine direkte Möglichkeit bietet, die Schriftfarbe auszulesen. Du kannst jedoch die Hintergrundfarbe einer Zelle abfragen:

=ZELL("farbe", A1)

Diese Formel gibt 1 zurück, wenn die Zelle eine Farbe hat, und 0, wenn dies nicht der Fall ist.


Praktische Beispiele

  1. Schriftfarbe auslesen und in eine andere Zelle schreiben:

    Sub SchriftfarbeInZelle()
       Dim farbe As Long
       farbe = ActiveCell.Font.Color
       Range("B1").Interior.Color = farbe
    End Sub
  2. Hintergrundfarbe einer Zelle auslesen:

    Sub HintergrundfarbeAuslesen()
       MsgBox ActiveCell.Interior.Color
    End Sub

Diese Beispiele zeigen Dir, wie Du die Schriftfarbe und die Hintergrundfarbe einer Zelle in Excel auslesen kannst.


Tipps für Profis

  • Nutze ColorIndex, um eine standardisierte Farbdarstellung zu erhalten.
  • Verwende ActiveCell.Characters() für die Arbeit mit Textformatierungen innerhalb einer Zelle.
  • Experimentiere mit der If...Then-Bedingung, um verschiedene Schriftarten und -größen zu überprüfen.

Mit diesen Tipps kannst Du noch effizienter in Excel arbeiten und die benötigten Informationen schnell auslesen.


FAQ: Häufige Fragen

1. Wie kann ich die Hintergrundfarbe einer Zelle auslesen? Du kannst die Hintergrundfarbe mit folgendem VBA-Code auslesen:

MsgBox ActiveCell.Interior.Color

2. Ist es möglich, die Farbe einer Zelle ohne VBA abzufragen? Ja, Du kannst die ZELL()-Funktion verwenden, um Informationen über die Formatierung einer Zelle zu erhalten, jedoch ist die Schriftfarbe nicht direkt verfügbar.

3. Wie finde ich den Farbcode einer Zelle heraus? Du kannst den Farbcode mit ActiveCell.Font.Color oder ActiveCell.Interior.Color im VBA auslesen.

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