Listbox Filterung

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Listbox Filterung
von: Sebastian
Geschrieben am: 08.09.2015 11:48:08

Hallo ihr lieben,
ich suche nach einer Lösung zu meinem Problem. Ich habe eine Excel Tabelle in der mehrere Strings aufgelistet sind. Die Tabelle reicht von A31 bis CJ100.
Ich wollte gerne einen Filterfunktion erstellen, welche mir bestimmte Strings filtert. Das schwere daran, es geht mit einer Listbox (Listbox3) einher.
Also wenn ich die erste Auswahlt der Listbox3 anklicke und dann auf einen Button gehe, sollte mir jede Row mit dem Inhalt "TS" angezeigt werden.
ich hätte es auch mit folgender Zeile erst versucht, falls jemand eine elegante Lösung hat wäre ich dafür Dankbar.
'Hardcoded, seleced(0) steht für "TS", würde dann für alle anderen zu suchenden Strings eine solche Funktion schreiben. Zudem steht in der Listbox nicht dasselbe wie in der Zelle an sich.
If Workbooks("TESTKopie.xlsm").Sheets("Tabelle1").ListBox3.Selected(0) Then
Leider bin ich bei dem Rest sehr unsicher, ich weiß nicht wie man eine Cells.Find Abfrage in einer Schleife einbaut.
Hier ist ein kleiner Überblick davon, wie die Sheet aussehen wird:
Userbild
Ich bedanke mich jetzt schon für eure Mühe.
lg

Bild

Betrifft: AW: Listbox Filterung
von: Gerd L
Geschrieben am: 08.09.2015 13:41:40
Hallo Sebastian!
Ein Ansatz zum Weiterbasteln:

Sub test()
If listbox3.ListIndex > -1 Then
    Select Case listbox3.List(ListIndex, 0)
    Case "TS": Call Extraxt("TS")
    
    End Select
End If
End Sub
Sub Extraxt(strKrit As String)
Dim Bereich As Range, Zelle As Range
Set Bereich = Tabelle1.Range("A31:A100")
For Each Zelle In Bereich
    Zelle.EntireRow.Hidden = (Zelle.Value <> strKrit)
Next
End Sub
Gruß Gerd

Bild

Betrifft: AW: Listbox Filterung
von: fcs
Geschrieben am: 08.09.2015 13:43:57
Hallo Sebastian,
der Code für die Schaltfläche müsste dann etwa wie folgt aussehen.
Die Listbox3 darf dabei nicht für Mehrfachauswahl konfiguriert sein.
Gruß
Franz

Private Sub CommandButton1_Click()
  Dim varSuche
  Dim rngSuche As Range, rngZelle As Range
  
  With Me ' Wenn Daten, Listbox und Schaltfläche im gleiche Tabellen angeordnet sind
'  With Workbooks("TESTKopie.xlsm").Sheets("Tabelle1")
    With .ListBox3
      If .ListIndex = -1 Then
        MsgBox "bitte erst eine Eintrag in der Listbox auswählen!"
        GoTo Beenden
      Else
        varSuche = .Value
      End If
    End With
    For Each rngZelle In .Range("A31:A100").Cells
      If rngZelle.Value = varSuche Then
        If rngSuche Is Nothing Then
          Set rngSuche = rngZelle
        Else
          Set rngSuche = Application.Union(rngSuche, rngZelle)
        End If
      Else
        'do nothing
      End If
    Next rngZelle
    With .Range("A31:A100")
      If rngSuche Is Nothing Then
        .EntireRow.Hidden = False
        MsgBox "Suchbegriff nicht gefunden"
      Else
        .EntireRow.Hidden = True
        rngSuche.EntireRow.Hidden = False
      End If
    End With
  End With
Beenden:
End Sub


Bild

Betrifft: AW: Listbox Filterung
von: Sebastian
Geschrieben am: 08.09.2015 14:02:50
Vielen lieben Dank euch beiden, der Code hat hier auf Anhieb funktioniert! Danke!
lg

Bild

Betrifft: AW: Listbox Filterung
von: Sebastian
Geschrieben am: 08.09.2015 14:01:16
WOW vielen lieben Dank an euch beiden, der Code hat auf Anhieb funktioniert! Danke!!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Listbox Filterung"