Zwei Fragen zum Autofilter: Autofilter für neue Spalte

16/06/2010 - 14:16 von Burkhard Schultheis | Report spam
Ich habe hier folgendes Problem: Ich habe eine Excel-Datei mit
aktiviertem Autofilter bekommen. Nun habe ich eine Spalte hinzugefügt,
die ich zusàtzlich noch mit dem Autofilter filtern möchte. Wie kann ich
für diese Spalte den Autofilter aktivieren, ohne die Einstellungen für
die anderen Spalten zu verlieren? Und wie kann man die Einstellungen
eines benutzerdefinierten Autofilters "auslesen", also sehen, wie
gefiltert wird? Es handelt sich um Excel 2003.

Vielen Dank für alle Antworten!

Grüße
Burkhard
 

Lesen sie die antworten

#1 Andreas Killer
16/06/2010 - 17:01 | Warnen spam
Am 16.06.2010 14:16, schrieb Burkhard Schultheis:

Ich habe hier folgendes Problem: Ich habe eine Excel-Datei mit
aktiviertem Autofilter bekommen. Nun habe ich eine Spalte hinzugefügt,
die ich zusàtzlich noch mit dem Autofilter filtern möchte. Wie kann ich
für diese Spalte den Autofilter aktivieren, ohne die Einstellungen für
die anderen Spalten zu verlieren?


Das geht nicht, um diese Spalte mit zu filtern musst Du den Autofilter
komplett entfernen und wieder setzen.

Und wie kann man die Einstellungen
eines benutzerdefinierten Autofilters "auslesen", also sehen, wie
gefiltert wird? Es handelt sich um Excel 2003.


Das kann man mit einem Makro machen, ich hàng Dir mal einen Code dran.

Der Code muss in ein normales Modul, wie's geht steht hier:
http://www.online-excel.de/excel/si....php?fD#s2

Dann rufst Du als erstes über Alt-F8 das Makro SaveCurrentAutofilter auf.

Nun entfernst Du den Autofilter komplett und aktivierst ihn wieder,
aber so das Deine zusàtzliche Spalte mit gefiltert wird.

Und nun rufst Du das Makro RestoreCurrentAutofilter auf, was dann die
Einstellungen wieder herstellt.

Das sollte funktionieren, es sei denn Du filterst nach einem Datum,
das làßt sich mit VBA leider nicht 1:1 wieder herstellen, das mußt Du
Dir vorher selber merken/einstellen. Alles andere sollte gehen.

Andreas.

Option Explicit

'Zur Speicherung des Autofilter von der Oberflàche aus
Private OurFilterArray As Variant

Sub SaveCurrentAutofilter()
SaveAutofilter OurFilterArray
End Sub

Sub SaveAutofilter(ByRef FilterArray As Variant, Optional _
ByVal W As Worksheet = Nothing)
'Sichert die Filter eines Autofilters
Dim F As Integer
If W Is Nothing Then Set W = ActiveSheet
If Not W.AutoFilterMode Then Exit Sub
With W.AutoFilter.Filters
ReDim FilterArray(1 To .Count, 1 To 3)
For F = 1 To .Count
With .Item(F)
If .On Then
FilterArray(F, 1) = .Criteria1
If .Operator Then
FilterArray(F, 2) = .Operator
FilterArray(F, 3) = .Criteria2
End If
End If
End With
Next
End With
End Sub

Sub RestoreCurrentAutofilter()
RestoreAutofilter OurFilterArray
End Sub

Sub RestoreAutofilter(ByRef FilterArray As Variant, Optional _
ByVal W As Worksheet = Nothing)
'Stellt die Filter eines Autofilters wieder her
Dim I As Integer
If W Is Nothing Then Set W = ActiveSheet
If Not W.AutoFilterMode Then Exit Sub
If W.FilterMode Then W.ShowAllData
For I = 1 To UBound(FilterArray)
If Not IsEmpty(FilterArray(I, 1)) Then
If IsEmpty(FilterArray(I, 2)) Then
W.AutoFilter.Range.AutoFilter I, FilterArray(I, 1)
Else
W.AutoFilter.Range.AutoFilter I, FilterArray(I, 1), _
FilterArray(I, 2), FilterArray(I, 3)
End If
End If
Next
End Sub

Ähnliche fragen