Ich hänge schon wieder und komme nicht auf den richtigen Ansatz.
Auch die SuFu konnte nicht helfen.
In einer Textbox wird ein Suchbegriff eingegeben. Mit dem Ergebnis fülle ich eine Listbox. Nun möchte ich in der Listbox einen Eintrag auswählen. Dieser Eintrag enthält viel mehr Daten welche nur in dem Tabellenblatt (alles in einer Zeile) zu finden sind.
Beispiel: Suche nach Audi A5 (in textbox)
Listbox zeigt nun Audi A5 Avant, Audi A5 Sportback etc. an.
Jetzt möchte ich einen Eintrag auswählen und mir dadurch weitere Details anzeigen lassen. Diese weiteren Details befinden sich in der gleichen Zeile im Tabellenblatt.
Verschiedene labels sollen mit den weiteren Informationen beschrieben werden.
Ich habe zuerst versucht mir den listbox eintrag auf ein seperates Teabellenblatt zu kopieren und dann per sverweis die weiteren Daten in bestimmte Zellen zu schreiben. Die Zellen dann über die label.caption wieder rückwärts einzulesen.
Bei vielen Datensätzen wird das aber sehr langsam und ich bin mir sicher ich kann in VBA über die Auswahl ebenso die Labels beschriften, oder?
Die Listbox fülle ich mit folgendem Code:
Private Sub Suche_1_Enter_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iRowU As Long
xSuche = SSD_Suchen.Suchfeld_1.Value
If xSuche = "" Then
MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
Suchfeld_1.SetFocus
Exit Sub
End If
Set rng = Worksheets("Tabelle2").Range("B:B").Find _
(xSuche, lookat:=xlPart, LookIn:=xlValues)
If Not rng Is Nothing Then
With Worksheets("Tabelle2")
xErste = rng.Address(False, False)
y = True
Do Until xAdresse = xErste
ReDim Preserve arr(0 To 1, 0 To iRowU)
arr(0, iRowU) = .Cells(rng.Row, 2)
arr(1, iRowU) = .Cells(rng.Row, 3)
iRowU = iRowU + 1
Set rng = .Range("B:B").FindNext(after:=rng)
xAdresse = rng.Address(False, False)
Loop
xAdresse = ""
xErste = ""
End With
End If
If y = False Then
MsgBox "Der Suchbegriff wurde nicht gefunden!"
Suchfeld_1.SetFocus
Else
SSD_Suchen.ListBox1.Column = arr
End If
End Sub
Nun die Frage: Wie kann ich einen Eintrag auswählen und aus der gleichen Reihe im Tabellenblatt bestimmte Zellen auf labels übertragen?
Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank vorab!
Gruß
Sven