Guete Tag
Habe 2 Tabellen (Quelle & Ziel) beides sind formatierte Tabellen.
Ich möchte nun in Ziel / Spalte A einen Autofilter setzen welcher alle in in Quelle hinterlegten Daten als Selektionskriterien für den Filter verwendet.
Hierzu hab ich folgenden Code zusammengestellt welcher aber nicht funktioniert und ich komm nicht darauf warum.
Mir schein Array der richtige Weg zu sein. Bin mir da nicht sicher.
https://www.herber.de/bbs/user/140761.xlsm
Sub Autofilter() Dim wb As Workbook Dim WsZ As Worksheet Dim wsQ As Worksheet Dim x As Long Dim lz As Long Set wb = ThisWorkbook Set wsQ = wb.Worksheets(""Quelle"") Set WsZ = wb.Worksheets(""Ziel"") lz = Cells(wsQ.Rows.Count, ""A"").End(xlUp).Row MeinArr = wsQ.Range(Tabelle2) MeinArr = rg WsZ.Range.Autofilter Field:=1, Operator:= _ xlFilterValues, Criteria2:=Array(1, rg) End Sub"
Sub ZielFilter_setzen() Dim Z Dim Qw, Zw Dim A() Set Qw = Worksheets("Quelle") Set Zw = Worksheets("Ziel") For Each Z In Qw.Range("A2", Qw.Range("A2").End(xlDown)).SpecialCells(xlCellTypeVisible) ReDim Preserve A(UBound0(A) + 2) A(UBound(A) - 1) = 2 A(UBound(A)) = VBA.Format(Z.Value, "MM\/DD\/YYYY") Next Zw.Select Zw.ListObjects("Tabelle1").Range.Autofilter Field:=1 Zw.ListObjects("Tabelle1").Range.Autofilter Field:=1, Operator:=xlFilterValues, Criteria2:= _ A End Sub Private Function UBound0(A) As Long On Error Resume Next UBound0 = -1 UBound0 = UBound(A) End FunctionIm übrigens, solltest Du versuchen, bestimmte Elemente von Spalte B, wie z.B. "Alle Mittwochs" müssstest Du die Werte anders ermitteln:
Zw.ListObjects("Tabelle1").Range.Autofilter Field:=1, Operator:=xlFilterValues, _ Criteria2:=ALeider setzt sich damit das Chaos beim Filtern von Datumswerten fort, wie es schon in ExcelXP (2002), Excel 2003, ... Excel 2016 fort und man muß per Versionsabfrage unterschiedlichen Vba-Code schreiben. Mal sehe, wie der Variante für E2019 aussieht.