vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.

Hinweis:
Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
ListBox-Einträge filtern 
Autor: Manfred X
Datum: 31.07.12 13:27

Hallo!

Ich kenne mich mit diesem Control leider nicht aus.
Ich vermute aber, es verfügt nicht über eine derartige
eingebaute Filter-Funktion.

Ich kann deshalb nur eine Variante anbieten, bei der
die zu filternden Einträge aus der ersten in eine zweite
Listbox übernommen werden (Man könnte diese Listbox an die
Stelle der ersten setzen und nur jeweils eine der beiden Listboxen
sichtbar machen).

'lbo: Listbox mit den zu filternden Einträgem
'ColumnIndex: Spaltenindex (ab 1), in der die zu prüfenden Werte stehen
'ColumnValue: Der Wert nach dem gesucht werden soll 
'Rückgabe: Array mit den gefilterten Daten
Private Function GetMatchedEntries(ByVal lbo As MsForms.ListBox, _
                            ByVal ColumnIndex As Integer, _
                            ByVal ColumnValue As Variant) As Variant()
 
 
   Dim entries() As Variant
   Dim matchedindices() As Integer, matchedentries() As Variant
 
   Dim i%, k%, l%
   entries = lbo.Column
   ReDim matchedindices(UBound(entries, 2))
   k = -1
   For i = 0 To UBound(entries, 2)
      If entries(ColumnIndex - 1, i) = ColumnValue Then
         k = k + 1
         matchedindices(k) = i
      End If
   Next i
   If k = -1 Then
      ReDim matchedentries(0, 0)
      GetMatchedEntries = matchedentries
      Exit Function
   End If
 
   ReDim matchedentries(UBound(entries, 1), k) As Variant
   For i = 0 To k
      For l = 0 To UBound(entries, 1)
         matchedentries(l, i) = entries(l, matchedindices(i))
      Next l
   Next i
 
  GetMatchedEntries = matchedentries
 
End Function
 
'Übertragung der Entries in eine Listbox  
Private Sub SetItems(lbo As MsForms.ListBox, entries() As Variant)
 
  Dim i%, k%
  With lbo
      .Clear
      .ColumnCount = UBound(entries, 1)
      For i = 0 To UBound(entries, 2)
        .AddItem entries(0, i)
        For k = 1 To UBound(entries, 1)
          On Error Resume Next
          .List(.ListCount - 1, k) = entries(k, i)
        Next k
      Next i
  End With
End Sub
Anwendung:
Sei Listbox1 mit Daten gefüllt, die anhand der Einträge in der ersten
Spalte gefiltert werden sollen, wobei der gesuchte Wert in der
Textbox "txtSelect" steht:

Private Sub cmdSelect_Click()
   Dim matchedentries() As Variant
   matchedentries = GetMatchedEntries(ListBox1, 1, txtSelect.Text)
   If UBound(matchedentries, 1) > 0 Then
      SetItems ListBox2, matchedentries
   Else
      MsgBox "nichts gefunden"
   End If
End Sub


Beitrag wurde zuletzt am 31.07.12 um 13:52:16 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Tipp 1555: ListBox-Einträge blitzschnell neu sortieren5.330PhoenixUnderFire20.07.12 12:46
Re: ListBox-Einträge blitzschnell neu sortieren3.541Manfred X20.07.12 21:36
Re: ListBox-Einträge blitzschnell neu sortieren2.853PhoenixUnderFire22.07.12 01:57
ListBox: Funktion für das Sortieren einer Spalte2.931Manfred X22.07.12 03:17
Anwendungsbeispiel3.020Manfred X22.07.12 03:20
Re: Anwendungsbeispiel2.814PhoenixUnderFire23.07.12 15:17
Version Zwo: Funktion für das Sortieren einer Listbox-Spalte3.035Manfred X22.07.12 15:41
Re: Version Zwo: Funktion für das Sortieren einer Listbox-Sp...2.561PhoenixUnderFire20.06.13 13:45
Re: ListBox-Einträge blitzschnell neu sortieren2.846PhoenixUnderFire31.07.12 09:51
ListBox-Einträge filtern3.427Manfred X31.07.12 13:27

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel