Clever-Excel-Forum

Normale Version: Filter/Listbox Problem !
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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


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
Hallöchen,

nach dem ersten drüber schauen nur ein Hinweis - eventuell hast Du einen Punkt verpasst:

If Rows(lCnt).EntireRow.Hidden = False Then


(vor Rows)
Hallo Schauan !

Wunderbar, jetzt funktioniert es auch von einen anderen Tabellenblatt aus.
Darauf währe ich niemals gekommen, kleiner Punkt, grosse Wirkung.
Herzlichen Dank für deine Hilfe.
Alternative:


PHP-Code:
Private Sub UserForm_Initialize()
  ComboBox1.List = Sheet1.Cells(1).CurrentRegion.Value
End Sub

Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex = -1 Then Exit Sub

  For j 
0 To ComboBox1.ListCount 1
    If ComboBox1
.List(j0) = ComboBox1.Value Then c00 c00 " " 1
  Next

  If c00 
<> "" Then
    st 
Application.Transpose(Split(Trim(c00)))
    ListBox1.List = Application.Index(ComboBox1.List, st, Array(123456))
    If UBound(st) = 1 Then ListBox1.Column ListBox1.List
  End If
End Sub