Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Autofilter auf alles auswählen stellen

Autofilter auf alles auswählen stellen
04.02.2022 09:59:59
Isabell
Hallo,
ich habe hier einen Code einer Schaltfläche zugeordnet.
Bei klick auf die Schaltfläche öffnet sich eine InputBox
Hier gebe ich eine Regalnummer ein. (z.B. 1-10-a oder 2-C4-7, oder 3-5a)
Nun wird auf 9 Tabellenblätter dieser Filter jeweils in der Spalte " i " gesetzt.
Das klappt so auch wunderbar.
Nur möchte ich nun eine Erweiterung dass wenn der filter keine Treffer hat,
auf allen 9 Blätter der Autofilter auf " aller auswählen " gestellt wird.
Also quasi zurück gestellt wird.
ist das Möglich ?

Sub FilterRegalnummer()
Dim Kriterium
Kriterium = InputBox("Bitte die Regalnummer eingeben", , "Regalnummer")
Sheets("Braunschweig").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Hannover").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Kiel").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Lübeck").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Osnabrück").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Bremen").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Göttingen").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Hamburg").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("sonstige").Select
Selection.AutoFilter Field:=9, Criteria1:=Kriterium
Sheets("Menü  Info").Select
End Sub

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 10:21:20
Michael
Moin,

Sheets("Welches auch immer").AutoFilter Field:=1
protokolierte der Makrorekorder...

Field:=1
ist wohl "Alle".
VG Michael
AW: Autofilter auf alles auswählen stellen
04.02.2022 11:00:35
Isabell
Hallo Michael,
vieln Dank.
Aber wenn ich das darunter setze, deaktiviert er ja gleich die zuvor gefilterten Daten.
Es sollte nur angewandt werden, wenn er die eingegebenen Regalnummer nicht findet.
Gruß
Isabell
AW: Autofilter auf alles auswählen stellen
04.02.2022 10:22:48
Beverly
Hi Isabell,
ich nehme an, der Button befindet sich im Tabellenblatt "Menü Info" und der Autofilterbereich beginnt immer in A1?

Sub FilterRegalnummer()
Dim Kriterium
Dim wsTab As Worksheet
Kriterium = InputBox("Bitte die Regalnummer eingeben", , "Regalnummer")
For Each wsTab In Worksheets
If wsTab.Name  "Menü Info" Then
If Kriterium = "Regalnummer" Or Kriterium = "" Then
wsTab.Range("A1").CurrentRegion.AutoFilter field:=9
Else
wsTab.Range("A1").CurrentRegion.AutoFilter field:=9, Criteria1:=Kriterium
End If
End If
Next wsTab
End Sub
Bis später
Karin

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 10:45:32
Isabell
Hallo Karin.
vielen Dank.
Leider kommt ein Fehler bei :
wsTab.Range("A1").CurrentRegion.AutoFilter field:=9, Criteria1:=Kriterium
Laufzeitfehler 1004
Die AutoFilter-Methode des Range-Objektes konnte nicht ausgeführt werden
Ja. der Button befindet sich im Tabellenblatt "Menü Info"
Der Autofilterbereich beginnt immer in A1 ?
Was ist damit gemeint ?
Die Filter sind in Zeile 1 in jeder Spalte.
Der erste in A1
AW: Autofilter auf alles auswählen stellen
04.02.2022 11:26:07
Beverly
Hi Isabell,
ich kann dein Problem leider nicht nachvollziehen - in meiner Mappe funktioniert der Code problemlos.
https://www.herber.de/bbs/user/150872.xlsm
Bis später
Karin

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 13:01:08
Isabell
Hallo Karin,
kann es sein dass bei
If wsTab.Name "Menü Info" Then
der Fehler liegt, denn meine Mappe hat noch weitere Tabellen-Blätter ohne Filter.
Der Filter sollte nur auf den ersten 9 Blättern arbeiten.
Gruß Isabell
AW: Autofilter auf alles auswählen stellen
04.02.2022 14:35:46
Beverly
Hi Isabell,
wenn du außer im Blatt "Menü Info" noch weitere Blätter ohne Autofilter hast, dann tritt bei diesen logischerweise der genannte Fehler auf - aber aus deinem Beitrag war nicht zu entnehmen, dass du noch weitere Blätter ohne Autofilter hast.
Ersetze die Zeile

If wsTab.Name  "Menü Info" Then
durch diese:

If wsTab.AutoFilterMode Then
Damit wird geprüft, ob das Tabellenblatt überhaupt einen Autofilter hat (unabhängig vom Blattnamen).
Bis später
Karin

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 15:16:32
Isabell
Hallo Karin,
ja sorry, das hatte ich nicht bedacht.
Jetzt funktioniert es aber.
Vielen Dank
AW: Autofilter auf alles auswählen stellen
04.02.2022 15:50:34
Isabell
Nun habe ich aber einen Fehler wenn ich alle Filter wieder zurücksetzen möchte.
Bei diesen Code

Sub MenüInfo_CommandButton1_Klicken()
Dim WS                   As Worksheet
For Each WS In ActiveWorkbook.Worksheets
If WS.FilterMode Then
WS.ShowAllData
End If
Next WS
zeigt er hier
WS.ShowAllData
den Fehler an
Laufzeitfehler 1004
Die Methode ShowAllData für das Objekt Worksheet ist fehlgeschlagen
Wie kann ich per Klick auf die Schaltfläche alle Filter wieder rückgängig machen ?
Gruß Isabell
Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 16:11:48
Isabell
Nun habe ich aber einen Fehler wenn ich alle Filter wieder zurücksetzen möchte.
Bei diesen Code

Sub MenüInfo_CommandButton1_Klicken()
Dim WS                   As Worksheet
For Each WS In ActiveWorkbook.Worksheets
If WS.FilterMode Then
WS.ShowAllData
End If
Next WS
zeigt er hier
WS.ShowAllData
den Fehler an
Laufzeitfehler 1004
Die Methode ShowAllData für das Objekt Worksheet ist fehlgeschlagen
Wie kann ich per Klick auf die Schaltfläche alle Filter wieder rückgängig machen ?
Gruß Isabell
AW: Autofilter auf alles auswählen stellen
04.02.2022 17:24:12
Beverly
Hi Isabell,
mittels .FilterMode wird geprüft, ob die Tabelle gefiltert ist - wenn jedoch überhaupt kein Autofilter eingerichtet ist, kann auch nichts zurückgesetzt werden - folglich der Laufzeitfehler. Du musst also vorher noch prüfen, ob überhaupt ein Autofilter eingerichtet ist - und das wird (wie in meinem Code) mittels .AutoFilterMode festgestellt

For Each wsTab In Worksheets
If wsTab.AutoFilterMode Then
If wsTab.FilterMode Then wsTab.ShowAllData
End If
Next wsTab
Bis später
Karin

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 18:11:30
Isabell
Hallo Karin,
Vielen Dank für deine Geduld.
Es kommt trotzdem ein Fehler bei
wsTab.ShowAllData

Sub MenüInfo_CommandButton1_Klicken()
Dim WS As Worksheet
For Each wsTab In Worksheets
If wsTab.AutoFilterMode Then
If wsTab.FilterMode Then wsTab.ShowAllData
End If
Next wsTab
End Sub
Wenn ich dann das Debuggen beende, ist der Filter allerdings wieder deaktiviert.
AW: Autofilter auf alles auswählen stellen
04.02.2022 18:21:16
Isabell
Hallo Karin,
vielen Dank für deine Geduld.
Es kommt trotzdem die Fehlermeldung bei: WSTab.ShowAllData

Sub MenüInfo_CommandButton1_Klicken()
Dim WSTab As Worksheet
For Each WSTab In Worksheets
If WSTab.AutoFilterMode Then
If WSTab.FilterMode Then WSTab.ShowAllData
End If
Next WSTab
End Sub
Wenn ich aber das Debuggen beende, ist der Filter aber deaktiviert.
Das ist bei meiner und bei deiner Version so.
Nun habe ich einen On Error bei meiner ersten Variante eingebaut,
und so funktioniert es.

Sub MenüInfo_CommandButton1_Klicken()
Dim WS As Worksheet
For Each WS In ActiveWorkbook.Worksheets
On Error Resume Next
If WS.FilterMode Then
WS.ShowAllData
On Error GoTo 0
End If
Next WS
End Sub

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 19:25:59
Beverly
Hi Isabell,
welche Fehlermeldung kommt bei dir? Dann lade doch mal deine Mappe hoch - in meiner Mappe kommt bei mir nämlich keine.
https://www.herber.de/bbs/user/150891.xlsm
Auf On Error Resume Next sollte man verzichten wenn man es anders lösen kann.
Bis später
Karin

AW: Autofilter auf alles auswählen stellen
05.02.2022 09:30:58
Isabell
Guten morgen Karin,
Das scheint nur bei meiner Datei so zu sein.
Diese Firmen-Datei darf ich leider nicht hochladen.
Ich habe auch eine Beispiel-Datei erstellt,
und bei dieser kommt auch kein Fehler.
Ich werde das mit den On Error so machen. Es funktionier ja so.
Also vielen Dank für deine Mühe
Wünsche ein schönes Wochenende
Gruß Isabell
Anzeige
AW: Autofilter auf alles auswählen stellen
05.02.2022 09:45:15
Beverly
Hi Isabell,
erstelle doch einfach eine Kopie deiner Mappe und ersetze deine Daten durch Dummydaten. Es muss doch eine Ursache geben, weshalb es den Fehler in dieser Mappe gibt.
In diesem Thread hier http://www.ms-office-forum.net/forum/showthread.php?t=322895 findest du einen Code mit dem du dies realisieren kannst.
Bis später
Karin

AW: Autofilter auf alles auswählen stellen
05.02.2022 13:40:53
Isabell
Hallo,
nein, das geht nicht !
Zu viele VBA Codes und Bilder die auf die Firma hinweisen.
Aber danke noch mal.
Gruß Isabell
Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 21:20:09
Isabell
Hallo Karin,
vielen Dank für deine Geduld.
Es kommt trotzdem die Fehlermeldung bei: WSTab.ShowAllData

Sub MenüInfo_CommandButton1_Klicken()
Dim WSTab As Worksheet
For Each WSTab In Worksheets
If WSTab.AutoFilterMode Then
If WSTab.FilterMode Then WSTab.ShowAllData
End If
Next WSTab
End Sub
Wenn ich aber das Debuggen beende, ist der Filter aber deaktiviert.
Das ist bei meiner und bei deiner Version so.
Nun habe ich einen On Error bei meiner ersten Variante eingebaut,
und so funktioniert es.

Sub MenüInfo_CommandButton1_Klicken()
Dim WS As Worksheet
For Each WS In ActiveWorkbook.Worksheets
On Error Resume Next
If WS.FilterMode Then
WS.ShowAllData
On Error GoTo 0
End If
Next WS
End Sub

Anzeige
AW: Autofilter auf alles auswählen stellen
04.02.2022 10:36:50
UweD
Hallo
so?

Sub FilterRegalnummer()
Dim Kriterium, SP As Integer, Arr, TB
SP = 9
Arr = Array("Braunschweig", "Hannover", "Kiel", "Lübeck", "Osnabrück", "Bremen", "Göttingen", "Hamburg", "sonstige")
Kriterium = InputBox("Bitte die Regalnummer eingeben", , "Regalnummer")
For Each TB In Arr
With Sheets(TB)
.Select
If WorksheetFunction.CountIf(.Columns(SP), Kriterium) > 0 Then
Selection.AutoFilter Field:=SP, Criteria1:=Kriterium
Else
If .FilterMode Then .ShowAllData ' Autofilter alle
End If
End With
Next
Sheets("Menü  Info").Select
End Sub
LG UweD
AW: Autofilter auf alles auswählen stellen
04.02.2022 10:56:15
Isabell
Hallo Uwe,
auch dor vielen Dank.
Es funktioniert so weit,
aber es werden auch Datensätze gefiltert, die die Regalnummer " 0 " haben.
Also, es werden alle Regalnummern so wie es sein soll gefiltert, aber zusätzlich auch alle mit Regal 0
Kann man das noch ausschließen ?
AW: Autofilter auf alles auswählen stellen
04.02.2022 11:24:41
Isabell
Hallo Uwe,
alles zurück !!!
Habe falsch gedacht !!!
So wie in deinem Code ist es perfekt.
In den Blättern wo das gesuchte Regal nicht vorhanden ist, bleibt der Filter inaktiv.
Wo das Regal gefunden wurde, werden dort nur diese angezeigt.
Super, so wollte ich es haben.
Viel Dank
Gruß Isabell
Danke für die Rückmeldung (owT)
04.02.2022 11:33:34
UweD

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige