Sortieren nach Farben (Microsoft Excel)
In Excel können Sie die Daten in Ihren Arbeitsblättern nach einer beliebigen Anzahl von Attributen sortieren. Eines der Dinge, nach denen Sie jedoch nicht intrinsisch sortieren können, ist die Farbe der Zellen – zumindest nicht ohne ein Update auf Excel 2007 oder höher. Für einige Anwendungen kann dies eine sehr praktische Funktion sein.
Das folgende Makro, SortByColor, sortiert eine Tabelle nach der Farbe, mit der eine Zelle formatiert ist.
Sub SortByColor() On Error GoTo SortByColor_Err Dim sRangeAddress As String Dim sStartCell As String Dim sEndCell As String Dim rngSort As Range Dim rng As Range Application.ScreenUpdating = False sStartCell = InputBox("Enter the cell address of the " & _ "top cell in the range to be sorted by color" & _ Chr(13) & "i.e. 'A1'", "Enter Cell Address") If sStartCell > "" Then sEndCell = Range(sStartCell).End(xlDown).Address Range(sStartCell).EntireColumn.Insert Set rngSort = Range(sStartCell, sEndCell) For Each rng In rngSort rng.Value = rng.Offset(0, 1).Interior.ColorIndex Next Range(sStartCell).Sort Key1:=Range(sStartCell), _ Order1:=xlAscending, Header:=xlNo, _ Orientation:=xlTopToBottom Range(sStartCell).EntireColumn.Delete End If SortByColor_Exit: Application.ScreenUpdating = True Set rngSort = Nothing Exit Sub SortByColor_Err: MsgBox Err.Number & ": " & Err.Description, _ vbOKOnly, "SortByColor" Resume SortByColor_Exit End Sub
Das Makro fragt zunächst nach der Anfangszelle des Bereichs, den Sie sortieren möchten. Dies sollte die oberste Zelle im Bereich sein. Das Makro fügt dann (nur vorübergehend) eine Spalte ein, in der Farbwerte gespeichert werden können. Anschließend wird jede Zelle in dem Bereich durchlaufen, der durch die von Ihnen angegebene Startzelle definiert ist.
SortByColor geht davon aus, dass Ihre Datentabelle keine Kopfzeile enthält. In diesem Fall sollten Sie den eigentlichen Sortierbefehl ändern. Ändern Sie einfach Header: = xlNo in Header: = xlYes.
Sie sollten beachten, dass das SortByColor-Makro Zellen nur nach der expliziten Farbe sortiert, die auf die Zelle angewendet wird. Es wird nicht sortiert, wenn die Farbe der Zelle das Ergebnis einer bedingten Formatierung ist.
_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 (3122) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: