mreske
Goto Top

Listbox mit Suchanfragen-Ergebnisse mit mehr als 9 Spalten befüllen

Hallo
ich möchte eine Listbox mit Ergebnissen aus einer Suchanfrage (txtSuche) befüllen.
Von den Treffern möchte ich alle Spalten aus der Quelldatei (tbl_Quelle.xlsx) in die Listbox (lstTreffer) übergeben.
Bei der .Additem lassen sich aber nur max. 9 Spalten übergeben.
Wie müsste ich den u.a. Code ändern, um alle Spalten auszugeben?

Private Sub txtSuche_Change()
Application.ScreenUpdating = False

Dim appExcel As Excel.Application
Dim wbkExcel As Excel.Workbook
Dim wksExcel As Excel.Worksheet
Dim rngExcel As Excel.Range
Dim rngCell As Range
Dim strFirstAddress As String
Dim Suchwort As String
 
Set appExcel = Excel.Application
Set wbkExcel = Excel.Workbooks.Open("C:\VBA\Test\tbl_Quelle.xlsx", ReadOnly:=True)  
Set wksExcel = Excel.Worksheets("Quelle")  
Set rngExcel = wksExcel.UsedRange

Suchwort = ("*" & Me.txtSuche.Value & "*")  

With wksExcel.Range("C:C")  
Me.lstTreffer.Clear
Set rngExcel = .Find(Suchwort, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngExcel Is Nothing Then
strFirstAddress = rngExcel.Address
Do
With Me.lstTreffer
.ColumnCount = 10
.AddItem
.List(.ListCount - 1, 1) = rngExcel.Offset(0, -1).Value
.List(.ListCount - 1, 2) = rngExcel.Offset(0, -2).Value
.List(.ListCount - 1, 3) = rngExcel.Offset(0, 3).Value
.List(.ListCount - 1, 4) = rngExcel.Offset(0, 4).Value
.List(.ListCount - 1, 5) = rngExcel.Offset(0, 5).Value
.List(.ListCount - 1, 6) = rngExcel.Offset(0, 6).Value
.List(.ListCount - 1, 7) = rngExcel.Offset(0, 7).Value
.List(.ListCount - 1, 8) = rngExcel.Offset(0, 8).Value
.List(.ListCount - 1, 9) = rngExcel.Offset(0, 9).Value
'.List(.ListCount - 1, 10) = rngExcel.Offset(0, 10).Value 'hier kommt eine Fehlermeldung  

End With
Set rngExcel = .FindNext(rngExcel)
Loop While Not rngExcel Is Nothing And rngExcel.Address <> strFirstAddress
Else
End If
End With
wbkExcel.Close
Application.ScreenUpdating = True
End Sub

Wenn die lstTreffer befüllt ist, möchte ich durch Anklicken auf einen Eintrag, die jeweiligen Werte aus den Spalten in andere Textboxen übernehmen

Private Sub lstTreffer_Click()
Me.Spalte1 = lstTreffer.List(lstTreffer.ListCount - 1, 1)
Me.Spalte2 = lstTreffer.List(lstTreffer.ListCount - 1, 2)
'u.s.w  
End Sub

2019-03-21_112854

Besten Dank im Voraus

Content-ID: 431082

Url: https://administrator.de/contentid/431082

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

138810
138810 21.03.2019 aktualisiert um 14:51:53 Uhr
Goto Top