Listbox mit dynamischen Daten füllen
19.08.2003 08:23:18
Hallimax
ich möchte eine 3-spaltige Listbox mit Datensätzen füllen, deren Anzahl mir vorher nicht bekannt ist. Dazu fülle ich das Array "Puffer", welches ich dann an die Listbox.List übergebe. ListBox.AddItem verwende ich aus Performancegründen nicht! Die Daten, deren Anzahl ich vorher nicht weiß, stammen aus einer Matrix. Das Makro prüft das komplette Feld "Daten" nach Einträgen und schreibt diese dann nacheinander in das Array "Puffer".
Das Problem:
Die Listbox übernimmt alle 10000 Zeilen des Arrays "Puffer", auch die leeren. Das sieht sch.... aus. Gibt es nicht die Möglichkeit "Puffer" dynamisch zu erstellen?
Hier das vereinfachte Beispiel:
Private Sub UserForm_Activate()
Dim Daten(99, 99) As String
Dim c1 As Long
Dim c2 As Long
Dim Puffer(9999, 2) As String
Dim x As Long
With UV_Toolbox
ListBox1.ColumnCount = 3
Daten(13, 17) = "test": Daten(23, 45) = "test": Daten(1, 16) = "test"
x = 0
For c1 = 0 To UBound(Daten, 1)
For c2 = 4 To UBound(Daten, 2)
If Daten(c1, c2) <> "" Then
Puffer(x, 0) = Daten(c1, c2)
Puffer(x, 1) = CStr(c1)
Puffer(x, 2) = CStr(c2)
x = x + 1
End If
Next c2
Next c1
ListBox1.List = Puffer
End With
End Sub
Vielen Danke für Eure Bemühungen im Voraus :o)
Gruß
Hallimax