Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Begriff in ListBox suchen

Betrifft: Begriff in ListBox suchen von: otto
Geschrieben am: 27.05.2008 13:32:51

Hi,

kann man einen beliebigen Begriff suchen, der irgendwo in der Listbox steht?

habe im Netz diesen Code gefunden, funktioniert aber nicht so richtig.

Private Sub TextBoxsucheLB_Change()
Dim i As Integer
With ListBox1
For i = 0 To .ListCount - 1
If Not InStr(.List(i), TextBoxsucheLB.Text) = 0 Then
.Selected(i) = True
End If
Next
End With
End Sub



Gruß
otto

  

Betrifft: AW: Begriff in ListBox suchen von: Rudi Maintaire
Geschrieben am: 27.05.2008 13:40:44

Hallo,

funktioniert aber nicht so richtig


Was?

Gruß
Rudi


  

Betrifft: AW: Begriff in ListBox suchen von: otto
Geschrieben am: 27.05.2008 14:28:56

Hi,

es durchsucht nur die 1. Spalte, meine LB hat aber 10.

so gehts jetzt:

Private Sub TextBoxsucheLB_Change()
Dim i As Integer, ii As Integer
For i = 0 To ListBox1.ListCount - 1
For ii = 0 To ListBox1.ColumnCount - 1
If ListBox1.List(i, ii) = TextBoxsucheLB.Text Then
ListBox1.Selected(i) = True
End If
Next
Next
End Sub



Wie schaffe ich es aber nun, dass es auch einen Teil des Begriffes in der LB findet?
z.B. in LB steht: 2.2 (13485) als Suchbegriff gebe ich aber nur 13485 ein.
Aber bitte nicht mit Like, da stört mich, dass ich Sternchen eingeben muss.

Gruß
otto


  

Betrifft: AW: Begriff in ListBox suchen von: Rudi Maintaire
Geschrieben am: 27.05.2008 14:36:45

Hallo,
mit InStr wie es vorher war.

Gruß
Rudi


  

Betrifft: AW: Begriff in ListBox suchen von: otto
Geschrieben am: 27.05.2008 14:49:00

Hi,

Danke, funzt.
Geht aber viel langsamer.

Private Sub TextBoxsucheLB_Change()
Dim i As Integer, ii As Integer
For i = 0 To ListBox1.ListCount - 1
For ii = 0 To ListBox1.ColumnCount - 1
If InStr(ListBox1.List(i, ii), TextBoxsucheLB.Text) Then
ListBox1.Selected(i) = True
End If
Next
Next
End Sub



Hast du noch ne Idee?

gruß
otto


  

Betrifft: AW: Begriff in ListBox suchen von: Rudi Maintaire
Geschrieben am: 27.05.2008 15:34:42

Hallo,
geht schneller:

Private Sub TextBoxsucheLB_Change()
  Dim i As Integer, ii As Integer
  Dim vntList, strTxt As String, arrSelected()
  strTxt = LCase(TextBoxsucheLB)
  vntList = ListBox1.List
  ReDim arrSelected(ListBox1.ListCount - 1)
  For i = 0 To ListBox1.ListCount - 1
    For ii = 0 To ListBox1.ColumnCount - 1
      arrSelected(i) = InStr(LCase(vntList(i, ii)), strTxt) > 0
      If arrSelected(i) Then Exit For
    Next
  Next
  With ListBox1
  For i = 0 To .ListCount - 1
    .Selected(i) = arrSelected(i)
  Next
  End With
End Sub


Gruß
Rudi


  

Betrifft: Erledigt - mit Exit Ereignis OK - o.w.T. von: otto
Geschrieben am: 27.05.2008 15:24:12




 

Beiträge aus den Excel-Beispielen zum Thema "Begriff in ListBox suchen"