Chuck schrieb über die Notwendigkeit, Datensätze in einem Arbeitsblatt nach der in einer Zelle verwendeten Füllfarbe zu sortieren. Excel bietet keine intrinsische Funktion zum Ausführen einer solchen Aktion, es ist jedoch möglich, eine benutzerdefinierte Funktion zu erstellen, die bei jeder Sortierung hilft, die durchgeführt werden muss. Betrachten Sie das folgende Makro:

Function GetFillColor(rng As Range) As Long     GetFillColor = rng.Interior.ColorIndex End Function

Angenommen, die Füllfarben befinden sich in den Zellen von Spalte A, müssen Sie lediglich sicherstellen, dass eine leere Spalte B vorhanden ist. Fügen Sie dann die folgende Formel in Zelle B2 ein und kopieren Sie sie für jeden Datensatz nach unten:

=GetFillColor(A2)

Wenn Sie fertig sind, enthält Spalte B die Indexwerte jeder in Spalte A verwendeten Füllfarbe. Sie können dann nach Spalte B sortieren, wodurch alle ähnlichen Füllfarben gruppiert werden.

Wenn Sie beispielsweise ausführlicher vorgehen müssen, wenn Sie in einer bestimmten Reihenfolge sortieren müssen (zuerst gelb, rot, dann grün, usw.), können Sie sich nicht nur auf den Indexwert der Füllfarbe verlassen. In einem solchen Fall müssen Sie sich auf eine andere Methode zur Rückgabe einer Farbe verlassen.

Betrachten Sie das folgende Makro:

Function GetColor(rngIndex As Range, rngSource As Range) As Long     Dim lngColor As Long     Dim J As Integer

Application.Volatile     lngColor = rngSource.Interior.ColorIndex

GetColor = 99       'Set to default color     For J = 1 To rngIndex.Count         If rngIndex(J).Interior.ColorIndex = lngColor Then             GetColor = J         End If     Next J End Function

Dieses Makro funktioniert anders als das letzte. Es sind zwei Bereiche erforderlich, um ordnungsgemäß zu funktionieren. Der erste Bereich ist im Grunde eine Farbtabelle, die die Reihenfolge angibt, in der die Farben sortiert werden sollen. Beispielsweise könnten die Zellen E1 bis E9 die neun Farben enthalten, die Sie zum Sortieren verwenden möchten, und zwar in der Reihenfolge, in der sie sortiert werden sollen. Sie würden dann die folgende Formel in Zelle B2 einfügen und sie für jeden Datensatz nach unten kopieren:

=GetColor($E$1:$E$9,A2)

Das Ergebnis ist, dass Spalte B die Werte 1 bis 9 enthält, die die Farben in Ihrer Farbtabelle darstellen. Wenn die Farbe in einer Zelle keine entsprechende Farbe in der Farbtabelle hat, gibt die Funktion den Wert 99 zurück. Wenn Sie die Datensätze in Ihrer Tabelle sortieren, werden sie nach Ihren Wünschen sortiert.

_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 (2009) gilt für Microsoft Excel 97, 2000, 2002 und 2003.