Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Mehrere Autofilter in Tabelle mit VBA
03.09.2018 17:27:16
Martin
Hallo liebe Excel-Experten,
ich möchte eine Tabelle mit VBA filtern.
Zuerst soll eine feste Spalte nach Kriterien gefiltert werden, die durch ein Dropdown-Menü vorgegeben sind. Das habe ich durch das durchforsten vieler Foren und Videoanleitungen hinbekommen.
Ein zweites Dropdown-Menü soll die Tabelle bzw. die durch das erste Dropdown-Menü herausgefilterten Zeilen erneut filtern. Hierbei wird aber durch das Dropdown-Menü die zu filternde Spalte bzw. deren Header vorgegeben, das Filterkriterium ist fest (enthält"yes").
Außerdem habe ich noch einen Button zum Zurücksetzen der Filter angelegt.
Solange ich statt dem zweiten Dropdown-Menü die zu filternde Spalte fest im Code vorgebe, funktioniert alles einwandfrei, sobald ich versuche, die zu filternde Spalte durch den im Dropdown erscheinenden Wert zu bestimmen, bekomme ich eine Fehlermeldung.
Kann mir hier jemand helfen?
Hier der bisherige Code:
Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$D$6" Then
Dim ws As Worksheet
Dim lst As ListObject
Dim iCol As Long
Dim iCol3 As Long
Set ws = ThisWorkbook.Worksheets(1)
Set lst = ws.ListObjects(1)
iCol = lst.ListColumns("Product Function").Index
lst.Range.AutoFilter Field:=iCol, Criteria1:=ws.Range("Drop_Down_Product_Function")
End If
If Target.Address = "$D$9" Then
iCol2 = ws.Range("Drop_Down_Ecolabel")
iCol3 = lst.ListColumns(iCol2).Index
lst.Range.AutoFilter Field:=iCol3, Criteria1:="*yes*"
End If
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mehrere Autofilter in Tabelle mit VBA
04.09.2018 17:36:44
Martin
Hi,
ich hab die Antwort inzwischen in einem anderen Forum gefunden, ich hatte das leere Dropdown nicht berücksichtigt:
Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim ws As Worksheet
Dim lst As ListObject
Dim iCol As Long
Dim Filter2 As String
Set ws = ThisWorkbook.Worksheets(1)
Set lst = ws.ListObjects(1)
If Target.Address = "$D$6" Then
iCol = lst.ListColumns("Product Function").Index
lst.Range.AutoFilter Field:=iCol, Criteria1:=ws.Range("Drop_Down_Product_Function")
End If
If Target.Address = "$D$9" Then
Filter2 = ws.Range("D9").Value
If Filter2  "" Then
iCol3 = lst.ListColumns(Filter2).Index
lst.Range.AutoFilter Field:=iCol3, Criteria1:="*yes*"
End If
End If
End Sub
Trotzdem danke für die Tips die mich auch dank Eures Forums bis zum ersten Schritt gebracht haben,
Martin
Anzeige

23 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige