Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Filter löschen mit Button

Alle Filter löschen mit Button
28.05.2024 11:37:57
Tim
Hallo, ich habe eine Frage wie kann ich mit einem Button Klick alle Filter löschen und das mehrmals ausführen? Und nachdem es gelöscht wurde, sollte es automatisch in einer bestimmten Spalte "Leer" Filter einsetzen und auch noch eine weitere Spalte absteigend sortieren.

With ActiveWorkbook.ActiveSheet
If .FilterMode Then
.ShowAllData
ActiveSheet.ListObjects("tbl_Bestellnummer").Range.AutoFilter Field:=12, _
Criteria1:="="
End If
End With

ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort. _
SortFields.Add2 Key:=Range("tbl_Bestellnummer[[#All],[A-Nr.]]"), SortOn:= _
xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

Leider funktioniert es nicht so :/
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 11:47:46
Michael
Hallo Tim,

Den With-Block würde ich "verkürzen":
With ActiveWorkbook.ActiveSheet

If .FilterMode Then .ShowAllData
End With
' und dann erst:
ActiveSheet.ListObjects("tbl_Bestellnummer").Range.AutoFilter Field:=12, Criteria1:="="


Hilft das schon, um nach LEER zu filtern, auch wenn keine Filter zurückgesetzt werden?

Ansonsten: Makrorekorder! Zeichne auf, was Du tust und kopieren den Code in Dein Button-Click-Event. Ergänze dann Bedingungen.

VG Michael

Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 13:36:22
Tim
Ich habe es nochmal mit dem Mikrorecorder aufgenommen, was ich mir vorstelle.

Ich habe mir vorgenommen, dass ich einen Button hinzuzufügen, und damit habe ich vor:

Alle Filter zu löschen, die gesetzt sind und die Spalte L soll auf Filter "Leer" gesetzt werden und die Spalte A soll absteigend sortiert werden.

With ActiveWorkbook.ActiveSheet
If .FilterMode Then
.ShowAllData
ActiveSheet.ListObjects("tbl_Bestellnummer").Range.AutoFilter Field:=12, _
Criteria1:="="
End If
End With

ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort. _
SortFields.Clear
ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort. _
SortFields.Add2 Key:=Range("tbl_Bestellnummer[[#All],[A-Nr.]]"), SortOn:= _
xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 15:01:19
Michael
Hallo Tim,

mit vba hab ich das auch nicht so flüssig, sonst wäre mir das vielleicht eher aufgefallen.
Wenn ich einen Sortiervorgang aufzeichne, steht am Ende ein kleines entscheidendes Wörtchen: apply. Mach es!

Guck doch mal, ob das nicht macht, was Du möchtest:

    With ActiveWorkbook.ActiveSheet

If .FilterMode Then .ShowAllData
End With

With ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer")
.Sort.SortFields.Clear
.Sort.SortFields.Add2 _
Key:=Range("tbl_Bestellnummer[[#All],[A-Nr.]]"), _
SortOn:=xlSortOnValues, _
Order:=xlDescending
End With
ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort.Apply

ActiveWorkbook.ActiveSheet.ListObjects("tbl_Bestellnummer").Range.AutoFilter Field:=12, Criteria1:="="


Das Sortieren sollte m.E. am Ende stattfinden, sonst sortiert Dir Excel nur, was nach Setzen des Spaltenfilters sichtbar ist und nicht die gesamte Spalte.
VG Michael





Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 15:09:22
daniel
Hi
Sortieren sollte man dann, wenn alle Filter aufgehoben sind.
also:
1. Filter aufheben
2. Sortieren
3. Wunschfilter setzen

Gruß Daniel
AW: Alle Filter löschen mit Button
28.05.2024 16:06:09
Tim
Also quasi so? Nur irgendwie verschwindet die ganze Datei, wenn ich auf den Button drücke, merkwürdiger weiße.
Könnte man es auch ästhetisch besser gestalten oder eher nicht?


Sub Schaltfläche1_Klicken()
With ActiveWorkbook.ActiveSheet
If .FilterMode Then .ShowAllData
End With
ActiveWorkbook.Worksheets("Autos").ListObjects("tbl_Bestellnummer").Sort. _
SortFields.Add2 Key:=Range("tbl_Bestellnummer[[#All],[A-Nr.]]"), SortOn:= _
xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveSheet.ListObjects("tbl_Bestellnummer").Range.AutoFilter Field:=12, Criteria1:="="

End Sub
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 16:11:02
daniel
Hi
wenn du ListObjects hast, musst du meines Wissens nach die Filter für jedes Listobject zurücksetzen, da jedes Listobject seinen eigenen Autofilter hat.
Nur wenn du keine Listobjects hast, gibt es einen Autofilter für das ganze Blatt.
Gruß Daniel
AW: Alle Filter löschen mit Button
28.05.2024 16:14:13
Michael
Dann nimm doch bitte einfach meinen Code.
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 16:10:07
Michael
Ja, Danke, natürlich, in der Reihenfolge! So steht sie ja zum Glück auch im Code und so meinte ich es auch.
AW: Alle Filter löschen mit Button
29.05.2024 08:45:00
Tim
Hallo Michael,

leider funktioniert der Code nicht, ich habe es schon mehrmals probiert.
Es tut sich bedauerlicherweise nichts.
Wenn ich 2-mal darauf drücke, dann steht da: Die ShowAllData.Methode des Worksheets-Objektes konnte nicht ausgeführt werden.

Wisst ihr beide, wie ich den Fehler beheben könnte?

Anzeige
AW: Alle Filter löschen mit Button
29.05.2024 08:58:15
daniel
Hi
ja, wenn du uns zeigst, was du falsch gemacht hast.
am einfachsten durch das Hochladen einer Beispieldatei, in der wir den Fehler nachvollziehen können.
Gruß Daniel
AW: Alle Filter löschen mit Button
29.05.2024 09:02:43
Michael
Hallo Tim,

die Filter sind auch bestimmt angeschaltet? Mitunter zickt diese Abfrage "If .FilterMode Then .ShowAllData" rum, hatte ich auch schon bei anderen Gelegenheiten. Warum habe ich nicht rausbekommen, aber was dann hilft, ist die Filter einmal ab und wieder anzuschalten. Also von Hand im Menü "Daten" --> "Sortieren und Filtern" --> "Filtern".
Der Code macht sonst was er soll, ich habe mir dafür tatsächlich kurz eine Datei zusammengezimmert. Die ist aber zuhause, heute bin ich im Büro...
Es scheint mir auch wenig Sinn zu ergeben, dass ich Dir die hochlade. Lade Du bitte Deine Datei hoch, sonst kann ich Dir da nicht mehr weiterhelfen.

VG Michael
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 11:59:15
Tim
Danke dir Michael, nun habe ich das Problem, falls mal jemand anders aufsteigend sortiert und auf dem Button klickt, dann setz es den Filter in der Spalte 12 auf Leer aber sortiert die erste Spalte nicht absteigend, sondern aufsteigend.
AW: Alle Filter löschen mit Button
28.05.2024 12:09:25
Michael
Wie jetzt? Das Problem hattest Du doch bestimmt auch schon vorher ;-) Oder wie lautet der gesamte Code?
Ich hab nicht wirklich durchdrungen, was Du da vorhast...
Muss der Sortier-Code jetzt nicht einfach vors Filtersetzen? Warum sortiert da was aufsteigend, wenn da xlDescending steht?
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 12:52:10
Tim
Ja, mir ist grad eben aufgefallen, falls jemand manuell auf aufsteigend macht, warum auch immer und dann auf Button klickt, dann löschen sich alle Filter und die eine Spalte wird, auf Leer gestellt, aber es bleibt dabei, dass es aufsteigend ist und nicht automatisch auf absteigend umdreht. Ich hoffe jetzt weißt du wie ich es meine. Bsp.: würde man ja mit F4 in Excel fixieren und wie ist es dann hier? Kann man da auch fixieren, dass es immer absteigend ist, auch wenn es jemand Manuel auf aufsteigend ändert?
Anzeige
AW: Alle Filter löschen mit Button
28.05.2024 13:05:59
Michael
Entschuldige Tim, aber mir ist und bleibt verborgen, was Du da eigentlich vorhast. Ohne den gesamten Code in einer Beispieldatei wird das hier nichts.
Das Problem "wenn jemand..." kriegen wir nicht in vba und auch sonst nicht gelöst ;-)
Bei F4 macht mein Excel eine neue Datei auf...
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige