Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
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

Listbox über Textbox-Suche füllen

Betrifft: Listbox über Textbox-Suche füllen von: Markus
Geschrieben am: 25.11.2015 12:17:32

Hallo zusammen,
ich brauche wieder einmal Hilfe!
In folgendem Makro wird der Wert der TextBox in den Spalten A bis S gesucht und
ab dem gefundenen Wert ausgegeben!
Ich möchte aber das er mir die gefunden Werte aus jeder Zeile immer ab der 1. Spalte ausgibt. (Sprich, alle Treffer ab Spalte A anzeigt!)
Wie müßte das denn aussehen?

Danke Gruß Markus

Private Sub CommandButton5_Click()
Dim rngCell As Range
Dim strFirstAddress As String

With Worksheets("Zuordnung").Range("A:S")
Me.ListBox1.Clear
  Set rngCell = .Find(Me.TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not rngCell Is Nothing Then
      strFirstAddress = rngCell.Address
      Do
        With Me.ListBox1
        .ColumnCount = 4
          .AddItem
          .List(.ListCount - 1, 0) = rngCell.Value
          .List(.ListCount - 1, 1) = rngCell.Offset(0, 1).Value
          .List(.ListCount - 1, 2) = rngCell.Offset(0, 2).Value
          .List(.ListCount - 1, 3) = rngCell.Offset(0, 3).Value
          .List(.ListCount - 1, 4) = rngCell.Offset(0, 4).Value
          .List(.ListCount - 1, 5) = rngCell.Offset(0, 5).Value


          .ColumnWidths = "3cm;3cm;5,5cm;5,5cm;3cm;3cm"
        End With
        Set rngCell = .FindNext(rngCell)
        Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
      Else
       MsgBox "Suchvorgabe nicht gefunden", 48
    End If
End With
End Sub

  

Betrifft: AW: Listbox über Textbox-Suche füllen von: Rudi Maintaire
Geschrieben am: 25.11.2015 12:26:31

Hallo,
eine Möglichkeit:

Private Sub CommandButton5_Click()
Dim rngCell As Range, rngCellA As Range
Dim strFirstAddress As String

With ListBox1
  .Clear
  .ColumnCount = 4
  .ColumnWidths = "3cm;3cm;5,5cm;5,5cm;3cm;3cm"
End With

With Worksheets("Zuordnung").Range("A:S")
  Set rngCell = .Find(Me.TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not rngCell Is Nothing Then
      strFirstAddress = rngCell.Address
      Do
        Set rngCellA = .Cells(rngCell.Row, 1)
        With Me.ListBox1
          .AddItem
          .List(.ListCount - 1, 0) = rngCellA.Value
          .List(.ListCount - 1, 1) = rngCellA.Offset(0, 1).Value
          .List(.ListCount - 1, 2) = rngCellA.Offset(0, 2).Value
          .List(.ListCount - 1, 3) = rngCellA.Offset(0, 3).Value
          .List(.ListCount - 1, 4) = rngCellA.Offset(0, 4).Value
          .List(.ListCount - 1, 5) = rngCellA.Offset(0, 5).Value
        End With
        Set rngCell = .FindNext(rngCell)
      Loop While Not rngCell Is Nothing And rngCell.Address <> strFirstAddress
    Else
       MsgBox "Suchvorgabe nicht gefunden", 48
    End If
End With
End Sub
Gruß
Rudi


  

Betrifft: AW: Listbox über Textbox-Suche füllen von: Markus
Geschrieben am: 25.11.2015 14:12:59

Hallo Rudi,

danke für die schnelle Hilfe.
Mich stört nur noch das "*" nach der Eingabe des Suchbegriffs.

Hast du dafür auch noch eine Lösung?

Danke Gruß Markus


  

Betrifft: welches * ? owT von: Rudi Maintaire
Geschrieben am: 25.11.2015 14:56:13




  

Betrifft: AW: welches * ? owT von: Markus
Geschrieben am: 25.11.2015 16:58:57

Hallo Rudi,

ich muß in der TextBox immer ein * hinter den Wert schreiben, damit ich
nicht nur genaue sondern auch Zeilen angezeigt bekomme worin der Wert vorkommt.
Das hängt glaube ich mit dieser Zeile zusammen:
Set rngCell = .Find(Me.TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)

Im Test ist mir aufgefallen, dass es auch doppelte Zeilen gibt, kann man das
ausschließen? Und wenn ja wie?

Danke für deine Mühe.
Gruß Markus


  

Betrifft: AW: welches * ? owT von: Werner
Geschrieben am: 26.11.2015 03:09:15

Hallo Markus,

dann so:

Set rngCell = .Find(Me.TextBox1.Value & "*", LookIn:=xlValues, lookat:=xlWhole)
Gruß Werner


 

Beiträge aus den Excel-Beispielen zum Thema "Listbox über Textbox-Suche füllen"