AW: Off topic
15.11.2023 17:57:01
daniel
HI
das mit den Bespieldateien sieht hier jeder unterschiedlich.
meistens ist sie ja hilfreich, aber manche haben halt Angst vor Viren, die sie sich da einfangen können.
Und wenn du (was das sicherste wäre), die Datei als xlsx hochlädst und dazu den Code in den Beitrag kopierst, kommt der nächste und ist zu faul, sich selber die Gesamtdatei zusammenzubasteln. Wie man es macht, ist es verkehrt.
aber zum Problem:
Wenn du als Zellbereich für den Filter nicht den gesamten Bereich vorgibst sondern nur eine einzelne Zelle (Worksheets("Tabelle1").Cells(23, 1).AutoFilter), dann schaut Excel selber nach wie groß die Filtertabelle sinnvollerweise sein könnte.
Dabei wird der Bereich dann ausgehend von der Ausgangszelle soweit erweitert, bis der Bereich vollständig von einer durchgehenden Leerzeile und Leerspalte (oder Rand) begrenzt ist.
dh wenn du möchtest, dass die Filterdropdowns in Zeile 22 erscheinen, dann muss die Zeile 22 durchgehend gefüllt sein (also die Überschriftenzeile) und die Zeile 21 muss durchgehend leer sein.
In deinem Fall willst du die Filter aber mitten in der Tabelle haben, das geht zwar auch, aber dann musst du den Filterbereich explizit vorgeben und darfst das nicht der Automatik überlassen:
die Zeilennummer der oberen Zeile ist die, in welcher dann die DropDowns erscheinen.
also
Worksheets("Tabelle1").Range("A22:E109").AutoFilter Field:=1, Criteria1:=crit1, _
bzw, wenn die letzte Zeile vom Makro selbst ermittelt werden soll:
Worksheets("Tabelle1").Range("A22:E" & Sheets("Tabelle1").Cells(Rows.Count, 5).End(xlup).Row).AutoFilter Field:=1, Criteria1:=crit1, _
Gruß Daniel