Michala hat ein Arbeitsblatt mit Umfrageantworten, das unterschiedlichen Text in verschiedenen Farben enthält. Wenn die Umfrageantwort beispielsweise „Ich mag keine Hunde“ lautet, ist das Wort „Hunde“ möglicherweise rot und der Rest des Textes schwarz. Eine Antwort kann mehrere Farben enthalten, z. B. in der Antwort „Ich mag Hunde und Katzen“ kann das Wort „Hunde“ rot und das Wort „Katzen“ blau sein. Michala benötigt eine Möglichkeit, einen Zellbereich hervorzuheben und zu zählen, wie viele Zellen Text einer bestimmten Farbe enthalten, z. B. Rot oder Blau.

Dies geschieht am besten durch die Entwicklung einer benutzerdefinierten Funktion, die das Zählen für Sie übernehmen kann. Das folgende Beispiel führt Sie durch einen Bereich von Zellen und zählt für den von Ihnen angegebenen Farbindexwert.

Function CountColorIndex(rng As Range, iColor As Integer)

Dim v As Variant     Dim rCell As Range     Dim str As String     Dim sChar As String     Dim x As Integer     Dim iCount As Integer

iCount = 0     For Each rCell In rng         v = rCell.Font.ColorIndex         If IsNull(v) Then             For x = 1 To Len(rCell.Value)

If rCell.Characters(x, 1).Font.ColorIndex _                   = iColor Then                     iCount = iCount + 1                     Exit For                 End If             Next         ElseIf v = iColor Then             iCount = iCount + 1         End If     Next     CountColorIndex = iCount End Function

Die Funktion betrachtet zunächst die Schriftfarbe der gesamten Zelle. Wenn die Zellenfarbe Null ist, bedeutet dies, dass die Farbe einzelner Zeichen geändert wurde und die Funktion beginnt, jedes Zeichen zu durchsuchen. Wenn die passende Farbe gefunden wird, wird die Anzahl (iCount) erhöht und die Funktion hört auf, jedes Zeichen zu durchsuchen.

Wenn die Zellenfarbe nicht Null ist, bestimmt die Funktion, ob die Schriftfarbe der gesamten Zelle mit der gewünschten Farbe übereinstimmt. Wenn dies der Fall ist, wird die Anzahl erhöht.

Dieser Vorgang wird für jede Zelle im angegebenen Bereich wiederholt, und die Funktion gibt dann den Wert der Zählung zurück. Sie verwenden die Funktion folgendermaßen:

=CountColorIndex(B7:D42,3)

Diese Formel überprüft den Bereich B7: D42, um festzustellen, ob Instanzen der Farbe Rot vorhanden sind. Die Zählung wird dann von der Formel zurückgegeben.

Es ist erwähnenswert, dass die Funktion auf Farbindexwerten beruht.

Der normale Standardwert für Rot ist 3 und der Wert für Blau ist 5. Diese Werte können jedoch vom Benutzer geändert werden und können je nach verwendeter Excel-Version variieren. Damit die Funktion die gewünschten Ergebnisse zurückgibt, müssen Sie den im zweiten Parameter der Formel angegebenen Farbindexwert so ändern, dass er die in Ihrer speziellen Arbeitsmappe verwendeten Farbindizes darstellt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (2901) gilt für Microsoft Excel 97, 2000, 2002 und 2003.