|
88. Autofilterspalte farblich hervorheben
Aufgabenstellung:
In dieser Beispieldatei geht es um
das Anzeigen welche der Spalten gefiltert wurde. Es wird in der Überschrift
farblich angezeigt, welche die gefilterte Spalte ist.
Dieses Beispiel steht auch als
Beispieldatei
zum Download zur Verfügung.
In der Zipdatei befindet sich eine xls-Datei für Excel 2000 - 2003 und eine
xlsm-Datei für Excel 2007.
|
|
Realisiert wurde das durch eine Formellösung.
In der Beispieldatei stehen in Zeile 2 von Spalte B bis F die Überschriften und darunter die Daten. In der Spalte in Zeile 2 wird die Zelle farblich markiert, dessen Spalte gefiltert wurde.
Möglich wird dieses, weil beim Aktivieren des Tabellenblattes in Zelle A1 (kann auch in jeder anderen Zelle gemacht werden) die Formel
=ZUFALLSZAHL()
eingetragen wird. Dadurch ist es dann möglich, die gefilterte Spalte bei jedem Calculate-Ereignis, das durch das Filtern ausgelöst wird, abzufragen.
Der Code ist in das
VBA-Projekt der Tabelle, in dem er wirken soll, einzufügen
|
Option Explicit
Private Sub Worksheet_Activate()
'Beim Aktivieren des Blattes in Zelle A1 die Formel
'=ZUFALLSZAHL() eintragen. Wird benötigt, weil ein Calculate
'Ereignis hervorgerufen werden muss um den Zustand des Autofilters
'zu ermitteln
Range("A1").FormulaLocal = "=ZUFALLSZAHL()"
End Sub
Private Sub Worksheet_Calculate()
Dim i As Integer
'Alle Hintergrund- und Schriftfarben in Bereich B2:F2 wieder zurücksetzen
With Range("B2:F2")
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 0
End With
'Schleife zum Finden, in welcher Spalte der Filter gesetzt wurde
For i = 2 To AutoFilter.Filters.Count
'Wenn der Autofilter in der Spalte, die in dem aktuelle
'Schleifendurchgang angesprochen wird, aktiv ist, dann...
If AutoFilter.Filters(i).On Then
'...Zellenhintergrund der 1. Zelle in der gefilterten Spalte in
'Grün und Schrift in weiß ändern
With Cells(2, i + 1)
.Interior.ColorIndex = 10
.Font.ColorIndex = 2
End With
End If
Next
End Sub
Private Sub Worksheet_Deactivate()
'Beim Verlassen des Blattes, die Zelle A1 leeren
Range("A1").ClearContents
End Sub
|
Dieses Beispiel wurde unter den in der
Tabelle aufgeführten Versionen getestet.
|
|
A |
B |
C |
D |
E |
|
1 |
|
|
|
|
|
2 |
|
Excel - Version |
Getestet |
|
|
3 |
|
|
|
|
4 |
|
Excel 2007 |
12.0 |
a |
|
|
5 |
|
Excel 2003 |
11.0 |
a |
|
|
6 |
|
Excel 2002 |
10.0 |
a |
|
|
7 |
|
Excel 2000 |
9.0 |
a |
|
|
8 |
|
Excel 97 |
8.0 |
|
|
|
9 |
|
|
|
|
|
|
10 |
|
Anzahl der Downloads: |
|
|
|
11 |
|
|
|
|
|
|
12 |
|
Dieses Beispiel wurde bereits
x
aufgerufen. |
|
|
13 |
|
|
|
14 |
|
|
|
|
|
|
>
Beispieldatei
herunterladen
<
Sollten beim Ausführen der Beispieldatei Fehler
auftreten, bitte ich darum, mir eine Mail mit der
Fehlerbeschreibung an
fehler@excelbeispiele.de
zu schicken.
Danke!
Möchten Sie www.excelbeispiele.de in Ihre Favoriten aufnehmen? Dann Klicken Sie hier.
|
|