Dazu wird ein Suchtext aus einer Textbox in einem Datenbereich gesucht und dann, wenn gefunden mehrere Spalten weider zurückgegeben.
Ich würde gern die Ausgabe dann nach der 2'ten Spalte sortieren lassen - geht das ?!?
Und wenn - wie ?
Fand kein Befehl für Sort...
Gruß udn Danke
Kay
Private Sub Datensatzsuche2()
Dim sText As String
Dim ArrayData
sText = objTBSuche.Text
With objLBDaten
.ListFillRange = ""
.ColumnCount = 5
.ColumnWidths = "0;75;75;75;200"
.Clear
ArrayData = fncListe(sText)
If IsArray(ArrayData) Then
.List = fncListe(sText)
arrKontakte = arrListe
.Height = 387
.Width = 435
.Top = 101.25
.Left = 712.5
Else
.Clear
End If
End With
End Sub
Function fncListe(Optional sText As String)Dim oDaten1, oDaten2, oDaten3, oDaten4 As Object
Dim arrListe, NewArray()
Dim A As Long
With Worksheets("Daten")
A = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
If A = 1 Then
fncListe = arrListe
Exit Function
Else
Set oDaten1 = CreateObject("Scripting.dictionary")
Set oDaten2 = CreateObject("Scripting.dictionary")
Set oDaten3 = CreateObject("Scripting.dictionary")
Set oDaten4 = CreateObject("Scripting.dictionary")
arrListe = Worksheets("Daten").Range("A8:AV" & A)
For A = 1 To UBound(arrListe)
If InStr(LCase(arrListe(A, 48)), LCase(sText)) > 0 Then
oDaten1(arrListe(A, 1)) = arrListe(A, 5)
oDaten2(arrListe(A, 1)) = arrListe(A, 6)
oDaten3(arrListe(A, 1)) = arrListe(A, 9)
oDaten4(arrListe(A, 1)) = arrListe(A, 14)
End If
Next
If oDaten1.Count > 0 Then
arrListe = oDaten1.keys
ReDim NewArray(UBound(arrListe), 4)
For A = LBound(arrListe) To UBound(arrListe)
NewArray(A, 0) = arrListe(A)
NewArray(A, 1) = oDaten1(arrListe(A))
NewArray(A, 2) = oDaten2(arrListe(A))
NewArray(A, 3) = oDaten3(arrListe(A))
NewArray(A, 4) = oDaten4(arrListe(A))
Next
fncListe = NewArray
End If
End If
End Function