Clever-Excel-Forum

Normale Version: VBA Autofilter für mehrere Tabellenblätter übernehmen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Grüß euch wieder mal  Blush

Ich hab ein neues Problem bzw möchte wieder was optimieren.

In meinem Excel File gibt es viele Tabellenblätter, die prinzipiell gleich aufgebaut sind.
Ich würde jetzt gerne in Tabelle A einen Autofilter setzen (meistens Datum/Woche in Spalte C) und dieser soll dann für die gewissen anderen Tabellen übernommen werden.

Aktuell hab ich mir zumindest mal soweit die Sachen zusammengesucht und angepasst:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
If Target.Address <> "$A$1" Then Exit Sub 'nur bei Doppelklick auf A1

With Application 'Makro beschleunigen
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
End With

With Sheets("A").AutoFilter.Filters 'Autofilter von Tabelle A übernehmen
    For i = 1 To .Count
        With .Item(i)
            If .On Then
                On Error Resume Next
                Me.Cells(1, 1).AutoFilter Field:=i, Criteria1:=.Criteria1
                Me.Cells(1, 1).AutoFilter Field:=i, Criteria1:=.Criteria1, _
                                                    Operator:=.Operator
                Me.Cells(1, 1).AutoFilter Field:=i, Criteria1:=.Criteria1, _
                                                    Criteria2:=.Criteria2, _
                                                    Operator:=.Operator
                On Error GoTo 0
            Else
                Me.Cells(1, 1).AutoFilter Field:=i
            End If
       
        End With
    Next
End With

ActiveWindow.FreezePanes = False 'Fenster G2 fixieren
Range("G2").Select
ActiveWindow.FreezePanes = True
Range("F1").Select 'F1 auswählen

With Application 'Makro beschleunigen Ende
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
End With
End Sub

Diesen Code hab ich bei den relevanten Tabellen (im Beispiel B/C/E) eingefügt und funktioniert relativ gut.
Ein Problem gibt es jedoch, sobald man beim Datum z.B. 2019 oder einzelne Tage auswählt.
Dann wird die Abfrage durchgeführt, jedoch kein Filter gesetzt.
Jemand eine Idee, wie man dieses Array (denke ich mal  Blush ) noch zusätzlich abfragen und setzen kann?


Bzgl Optimierung:
Ich würde gerne den Filter in der Tabelle A setzen, das Makro laufen lassen und dann die bestimmten Tabellen gleich filtern.
Wäre nochmal schneller, einmal die notwendigen Filter setzen zu lassen, als bei jeder Tabelle das Makro extra auszuführen.
Hoffe einer kann mich hier wieder unterstützen.

Danke
Hohle
Hallo,

wieder einmal die Frage, warum diese Daten auf mehrere Tabellenblätter verteilt sind.
Hallo Klaus-Dieter,

jedes Tabellenblatt wird für einen separaten Bereich für tägliche Eingaben genutzt.
Das Beispiel ist natürlich starkt gekürzt, im richtigen File geht es bis zur Spalte CK.

Ich benötige jeden Tag bis zu 8 Tabellenblätter für die verschiedenen Bereiche.
Hallo,

um es noch mal ganz deutlich auszudrücken: es gibt keinen vernünftigen Grund gleichartige Daten auf mehreren Tabellenblättern zu halten und zu pflegen. Das erhöht den Aufwand und bringt keine Vorteile. Ein Tabellenblatt hat rund eine Million Zeilen, das reicht für ganz viele Daten(sätze).
Hallo,

klar, man könnte über eine Hilfsspalte die einzelnen Bereiche trennen, das Datum dementsprechend oft eingeben usw.
So hätte ich ca 8.000 Zeilen und alle Daten auf einem Blatt.
Leider hab ich das File nur übernommen und kann es aktuell und auch nicht in naher Zukunft komplett neu erstellen.

Wie geschrieben, ich würde gerne die vorhandenen Sachen etwas optimieren, damit ich mir etwas Zeit erspare.
Man muss nicht immer die Gründe komplett verstehen, um trotzdem helfen zu können  Blush
Ich frage mich auch oft, warum jemand etwas so und so haben will, gib ihm einen Tipp wie es mMn sinnvoller wäre und hilf dann bei der Umsetzung (egal wie er sich entscheidet).
gelöscht wegen richtige Antwort im falschen Beitrag.  Angry Vielen Dank für den Hinweis.   :28:
Hi @Klaus-Dieter

du hast den TE verwechselt.

Zum TE.
Der Datumsfilter lässt sich nicht auslesen und damit auch nicht übertragen.

Gruß Elex
Hallo,

der Datumsfilter funktioniert, wenn man die vorgefertigten Filtermöglichkeiten nutzt (Gestern/ Dieser Monat/ Zwischen).
Nur sobald man direkt unten die Tage/Monate anklickt oder in der Suche eingibt, funktioniert es nicht ;)
Das wär ein kleines Add on, wenn das auch noch funktionieren würde, wird aber von mir nicht unbedingt benötigt.


Die Übernahme des Filters des A Blattes auf die gewissen anderen wäre noch hilfreich.
Sollte es nicht funktionieren, werde ich das Makro wie im Beispiel integrieren.
Ist zwar nicht perfekt, aber schon eine Erleichterung für mich  :19: