10.07.2019, 21:26
(Dieser Beitrag wurde zuletzt bearbeitet: 10.07.2019, 21:37 von WillWissen.
Bearbeitungsgrund: Codetags
)
Hallo Excel Forum !
Bräuchte mal wider eure Hilfe, Es geht um einen Code der grössten Teils von euch
stammt.
Der Code funktioniert Super, solange er im Aktiven Tabellenblatt ausgeführt wird.
Er macht genau das er soll, (Filter nach Suchkriterium eine Tabelle, und zeige das Ergebnis in einer Listbox an.)
Würde ihn aber gerne aus einem anderen Tabellenblatt aus Starten, was nur bedingt funktioniert.
In Tabelle ("Daten") Ausgeführt alles Top, und in einem anderen Tabellenblatt werden alle Einträge Angezeigt.
Ich verwiese zwar in der With Anweisung auf die Quelle, kann mir aber nicht erklären warum der Filter nicht greift.
Würde mich sehr freuen, wenn jemand Helfen kann. LG Gerhard
Bräuchte mal wider eure Hilfe, Es geht um einen Code der grössten Teils von euch
stammt.
Der Code funktioniert Super, solange er im Aktiven Tabellenblatt ausgeführt wird.
Er macht genau das er soll, (Filter nach Suchkriterium eine Tabelle, und zeige das Ergebnis in einer Listbox an.)
Würde ihn aber gerne aus einem anderen Tabellenblatt aus Starten, was nur bedingt funktioniert.
In Tabelle ("Daten") Ausgeführt alles Top, und in einem anderen Tabellenblatt werden alle Einträge Angezeigt.
Ich verwiese zwar in der With Anweisung auf die Quelle, kann mir aber nicht erklären warum der Filter nicht greift.
Würde mich sehr freuen, wenn jemand Helfen kann. LG Gerhard
Code:
Private Sub cmd_Filtern_Click()
Dim lRow&, lCnt&, lLastRow&
Dim Fil As Variant
Fil = frm_Datenentfernen.cbo_Filterauswahl
lLastRow = ThisWorkbook.Sheets("Daten").Cells(Rows.Count, 2).End(xlUp).Row
If Fil = "" Then
MsgBox "Filterkriterium setzen !!!"
Else
ThisWorkbook.Sheets("Daten").Range("B4:F" & lLastRow).AutoFilter
ThisWorkbook.Sheets("Daten").Range("B4:F" & lLastRow).AutoFilter 2, (Fil)
End If
With ThisWorkbook.Worksheets("Daten")
frm_Datenentfernen.lbx_Filter.ColumnCount = 5
frm_Datenentfernen.lbx_Filter.ColumnWidths = "30;60;100;30;100"
lRow = 0
lbx_Filter.Clear
For lCnt = 4 To lLastRow
If Rows(lCnt).EntireRow.Hidden = False Then
frm_Datenentfernen.lbx_Filter.AddItem .Cells(lCnt, 2)
frm_Datenentfernen.lbx_Filter.List(lRow, 1) = .Cells(lCnt, 3)
frm_Datenentfernen.lbx_Filter.List(lRow, 2) = .Cells(lCnt, 4)
frm_Datenentfernen.lbx_Filter.List(lRow, 3) = .Cells(lCnt, 5)
frm_Datenentfernen.lbx_Filter.List(lRow, 4) = .Cells(lCnt, 6)
lRow = lRow + 1
End If
Next
End With
End Sub