Ändern der AutoFilter-Dropdown-Pfeilfarben (Microsoft Excel)
Gus fragte, ob es eine Möglichkeit gebe, die Farbe der Dropdown-Pfeile zu ändern, die oben in jeder Spalte angezeigt werden, wenn AutoFilter aktiviert ist. Wenn ein Filter nicht auf eine Spalte angewendet wird, ist der Dropdown-Pfeil schwarz. Wenn ein Filter angewendet wird, ist der Dropdown-Pfeil dunkelblau. Gus wollte die Farben ändern, weil auf seinem Monitor nicht genügend Kontrast zwischen Schwarz und Marineblau vorhanden ist.
Leider scheint die Farbe der Dropdown-Pfeile in Excel fest codiert zu sein und kann nicht geändert werden. Wenn Sie möchten, können Sie eine Problemumgehung versuchen, bei der stattdessen die erste Zelle in jeder der gefilterten Spalten eingefärbt wird. Fügen Sie einem regulären Modul in der Arbeitsmappe das folgende Makro hinzu:
Sub ColorDisplayFilter() Dim flt As Filter Dim iCol As Integer Dim lRow As Long iCol = 0 lRow = ActiveSheet.AutoFilter.Range.Row Application.EnableEvents = False For Each flt In ActiveSheet.AutoFilter.Filters iCol = iCol + 1 If flt.On Then Cells(lRow, iCol).Interior.Color = vbYellow Else Cells(lRow, iCol).Interior.ColorIndex = xlColorIndexNone End If Next flt Application.EnableEvents = True End Sub
Der Code durchläuft die Filter für ein Arbeitsblatt und färbt die erste Zelle gelb, wenn der Filter für eine Spalte aktiv ist. Wenn der Filter nicht aktiv ist, wird die gelbe Farbe entfernt.
Um die Routine so auszulösen, dass sie automatisch ausgeführt wird, müssen Sie zwei Dinge tun. Zunächst müssen Sie dem thisWorkbook-Objekt das folgende Makro hinzufügen:
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) If Sh.AutoFilterMode Then ColorDisplayFilter End Sub
Dies wird jedes Mal ausgelöst, wenn das Arbeitsblatt berechnet wird. Wenn die AutoFilterMode-Eigenschaft True ist, wird das Farbmakro ausgeführt.
Als zweites müssen Sie Ihrem Arbeitsblatt eine Zwischensumme hinzufügen. Angenommen, Spalte A ist eine der Spalten im Filter, können Sie dem Arbeitsblatt Folgendes hinzufügen:
=SUBTOTAL(9,A:A)
Die SUBTOTAL-Funktion wird bei jedem Filterwechsel neu berechnet, um sicherzustellen, dass das Farbmakro ausgeführt wird. Die Formel kann bei Bedarf ausgeblendet werden, muss sich jedoch auf dem Arbeitsblatt mit dem Filter befinden, um sicherzustellen, dass das Blatt das Ereignis auslöst.
_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 (2371) gilt für Microsoft Excel 97, 2000, 2002 und 2003.