Spezialfilter in Excel 2007

16/01/2011 - 11:04 von Berthold Erfkämper | Report spam
Hallo NG-Gemeinde.

Fogenden Code verwende ich um in einer Liste zu suchen und filtern.

'Sub Filtern()
' Range("B11:J2833").AdvancedFilter Action:=xlFilterInPlace,
'CriteriaRange:= _
' Range("B2:J3"), Unique:=False
'End Sub


Aufgerufen über ein Worksheet_Change.


'Private Sub Worksheet_Change(ByVal Target As Range)
' If Not Intersect(Target, Range("B3:G3")) Is Nothing Then
' Call Filtern
' End If
'End Sub


Wenn ich nun aber alle Kriterienfelder leere, sucht Excel zunàchst
einmal in allen Zeilen und Spalten nach Übereinstimmungen. Das dauert
erstes lang und zweitens kostet es unnötig Rechnerleistung.

Kann man nicht mit einem "elseif" einfach die ganze Liste wieder
anzeigen lassen? Ohne diese zuerst durchsuchen zu müssen?

Danke für Eure Antworten.

Gruss.

Berthold
 

Lesen sie die antworten

#1 michlchen
20/01/2011 - 14:12 | Warnen spam
hallo.

beim normalen filter gibt es autofiltermode = false. vielleicht hilft
das ja auch hier.

bezüglich spezialfilter kenn ich mich ansonsten leider auch nicht
wirklich aus. aber zur not mal ausprobieren, wass er macht, wenn du
das deaktivieren der felder im markrorecorder aufzeichnest. vielleicht
haut er dir da ja nen befehl rein.

gruß michl.

ps: oder liegt es daran, dass die onchange methode das filtern makro
aufruft. wenn ja würde ich ne variable makro_is_active machen und dann
am anfang auf true und am ende auf false setzen. im onchange dann noch
rein, if makro_is_active = false -> call filtern...

Ähnliche fragen