Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Filter/Listbox Problem !
#1
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
Antworten Top
#2
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)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Foregner
Antworten Top
#3
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.
Antworten Top
#4
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 


Angehängte Dateien
.xlsb   __Listbox_beispiel.xlsb (Größe: 17,56 KB / Downloads: 2)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste