meine Ausgangssituation ist folgende:
Ich habe eine Tabelle mit 24 Spalten. Die Zeilen sollen fortlaufend beschrieben werden.
Ich möchte nun ein UserForm mit einer Listbox aufrufen, in der ich nach einer bestimmten Nummer (in Spalte E) suche und mir dann alle Zeilen, die diese Nummer enthalten ausgeben lassen. Es sollen auch alle 24 Spalten ausgegeben werden, wodurch die .AddItem Funktion ja wegfällt.
Das UserForm besteht nur aus der Listbox und einem Button, der die Suchprozedur auslösen soll.
Mein Versuch mit Rowsource:
Private Sub CommandButton1_Click()
Dim rngCell As Range
Dim strFirstAddress As String
With Worksheets("Tabelle1").Range("E:E")
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
'.ColumnHeads = True
.ColumnWidths = "1,7cm;2cm;0,5cm"
.ColumnCount = Tabelle1.Range("A1:X1").Columns.Count
.RowSource = Tabelle1.Range(Cells(rngCell.Row, 1), Cells(rngCell.Row, 24)).Address
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address strFirstAddress
Else
MsgBox "Nicht gefunden", 48
End If
End With
End Sub
Er findet so leider immer nur die letzte Zeile mit der gesuchten Nummer. Meine Überlegung war jetzt, im Loop ein Array zu befüllen, welches nach dem Verlassen des Loops dann irgendwie .rowsource bedient, so dass alle gesuchten Zeilen in der Listbox sichtbar werden. Leider habe ich keine Ahnung, wie ich das Umsetzen kann. Bin auch gerne für andere Lösungen offen, die mich zum Ziel bringen.Viele Grüße
Felix