HERBERS Excel-Forum - das Archiv

Thema: makro autofilter läuft nicht! | Herbers Excel-Forum

makro autofilter läuft nicht!
lisa

Hallo zusammen
Eín frohes und gesundes neues Jahr allen hier anwesenden!
Ich habe mal wieder, auch im neuen Jahr, ein Problem.
Mein Makro zum Autofilter läuft nicht!!!! :-(
Also der Filter wird zwar in der ersten Zeile gesetzt aber das Filterkriterium nicht gesetzt!
Range("1:1").AutoFilter Field:=11, Criteria1:="<>"
Es sollen alle nichtleeren in der Spalte K angezeigt werden! Das merkwürdige hierbei ist, dass ich auch nach dem durchlauf des Makro den Filter auch manuell nicht nutzen kann.
Wenn ich das Makro aufzeichne,
sieht er so aus:
Range("A1:O1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=11, Criteria1:="<>"
das Problem hierbei ist aber, das hier ab und an der Autofilter ab der zweiten Zeile gesetzt wird und das darf überhaupt nicht deswegen nun dieser Versuch:
Range("1:1").AutoFilter Field:=11, Criteria1:="<>", der aber auch nicht funktioniert!
Danke für jegliche Hilfe

Lade bitte eine Beispieldatei hoch
NoNet

Hallo Lisa,
das Makro sollte in beiden Versionen funktionieren - vorausgesetzt die Liste enthält "echte" Leerzellen.
Lade doch bitte mal eine entsprechende Testdatei hoch - Danke.
Gruß, NoNet
AW: Lade bitte eine Beispieldatei hoch
Daniel

Hi
hast du komplett durchgehende Leerzeilen oder Leerspalten innerhalb deiner Tabelle, die gefiltert werden soll?
wenn nein, dann sollte es reichen, für die Autofilteranweisung nur die linke obere Zelle anzugeben, weil Excel dann den bereich automatisch erweitert (geht aber nur, wenn keine komplett durchgehenden Leerzeilen oder Spalten innerhalb der Tabelle sind, weil diese die Grenze für den automatischen Autofilterbereich bilden)
Range("A1").AutoFilter Field:=11, Criteria1:="<>"
wenn ja, dann müsstest du in der Autofilteranweisung den kompletten Zellbereich angeben, auf den der Autofilter angewendet werden soll. In diesem Fall wird dann die Automatische Bereichserweiterung deaktiviert.
Range("A1:O1000").AutoFilter Field:=11, Criteria1:="<>"

wenn die exakte Grösse nicht bekannt ist und sich keine anderen Daten auf dem Tabellenblatt befinden, kann man auch die USEDRANGE verwenden:
ActiveSheet.UsedRange.AutoFilter Field:=11, Criteria1:="<>"
Gruß, Daniel