Übergabe eines Arrays
30.10.2008 16:58:50
Peter
mit dem nachfolgenden Code befülle ich eine ListBox in einem UserForm(ular).
Da aus dem Tabellenblatt mit 500 Zeilen selektiv Zeilen ausgewählt werden, ist mein Array in seiner ersten Dimension sicherlich immer nur wenig gefüllt, musst aber auf 0 to 500 für ein evtl. Maximum ausgelegt werden.
Wie kann ich nun die ListBox aus einem (ggf. weiteren) Araay mit der tatsächlichen Anzahl Datensätze befüllen?
Mit For/Next und Abfrage ob der Array leer ist möchte ich es NICHT machen.
Wie fülle ich also einen zweiten Array auf einen Schlag mit den tatsächlich extrahierten Daten um diese dann an die ListBox zu übergeben?
Gruß und vielen Dank im voraus
Peter
Private Sub txtSearch_Change()
Dim rRng As Range
Dim iAnzahl As Integer
Dim vTemp(0 To 500, 0 To 14) As Variant
Dim iIndx As Integer
With Userform1.ListBox1
.Clear
.ColumnCount = 14
.ColumnWidths = ("4cm;1,5cm;3cm;3cm;1,5cm;1,5cm;1cm;" & _
"2cm;2cm;2cm;2cm;1cm;0,5cm;2cm;" & _
"0cm") ' die 0cm-Spalte ist unsichtbar
End With
For Each rRng In Worksheets("Tabelle1").Range("B2:B500").Cells
If UCase(rRng.Text) Like "*" & UCase(Trim(txtSearch.Text)) & "*" Then
For iIndx = 0 To 13
vTemp(iAnzahl, iIndx) = rRng.Offset(0, iIndx)
Next iIndx
vTemp(iAnzahl, 14) = rRng.Row ' die Zeile der gespeicherten Datensätze festhalten
iAnzahl = iAnzahl + 1
End If
Next rRng
Userform1.ListBox1.List() = vTemp
End Sub