04.09.2018, 14:50
Hallo liebe Excel-Experten,
ich bin Excel- und VBA-Anfänger mit so gut wie keinen Kenntnissen und 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 nach dem 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:
Ich hänge mal eine reduzierte Tabelle zum besseren Verständnis an, hier läuft der zweite Autofilter fest über die "Ecolabel"-Spalte und alles funktioniert, wie es soll. Ich würde nur gerne das Field in diesem Autofilter über das zweite Dropdown-Menü festlegen, bekomme dann aber die Fehlermeldung.
Vielen Dank für jeden auch noch so kleinen Hinweis!
Tabelle_Mehrere_Autofilter_Dropdowns_VBA_01.xlsm (Größe: 63,28 KB / Downloads: 3)
ich bin Excel- und VBA-Anfänger mit so gut wie keinen Kenntnissen und 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 nach dem 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:
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
Ich hänge mal eine reduzierte Tabelle zum besseren Verständnis an, hier läuft der zweite Autofilter fest über die "Ecolabel"-Spalte und alles funktioniert, wie es soll. Ich würde nur gerne das Field in diesem Autofilter über das zweite Dropdown-Menü festlegen, bekomme dann aber die Fehlermeldung.
Vielen Dank für jeden auch noch so kleinen Hinweis!
