ich versuche aktuell den Code in einem Programm auf Geschwindigkeit zu optimieren und dabei auch einige Altlasten loszuwerden. Bisher habe ich gewisse Auswahlen in Listboxen in einer 2. versteckten Listbox zwischengespeichert. Das ist zwar schon relativ schnell (im Vergleich mit direkt in den Tabellen zu arbeiten), aber wahrscheinlich nicht die eleganteste Lösung.
Ich erhoffe mir vom Dictionary Objekt sowohl mehr Geschwindigkeit (mit grossen Datenmengen) wie auch einen professionelleren Code;-).
Anbei der Testcode, wie ich ihn heute habe:
Sub Listbox_füllen()
Dim L, M As Long
Set MyDic_Stammdaten = CreateObject("Scripting.Dictionary")
Dim Suchkriterium As Variant
Dim Matrix As Variant
'Suchkriterium Test
Suchkriterium = Sheets("Tabelle2").Range("A2:A" & Sheets("Tabelle2").Cells(Rows.Count, 1). _
End(xlUp).Row)
'Suchmatrix definieren
Matrix = Sheets("Tabelle1").Range("A2:J" & Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp) _
.Row)
For L = 1 To UBound(Matrix)
For M = 1 To UBound(Suchkriterium)
If Matrix(L, 3) = Suchkriterium(M, 1) Then
MyDic_Stammdaten(Matrix(L, 2)) = Array(Matrix(L, 1), _
Matrix(L, 3), _
Matrix(L, 4), _
Matrix(L, 5), _
Matrix(L, 6), _
Matrix(L, 7), _
Matrix(L, 8), _
Matrix(L, 9), _
Matrix(L, 10))
End If
Next M
Next L
ListBox1.List = MyDic_Stammdaten.keys
End Sub
Das funktioniert auch soweit, nur habe ich noch ein paar Fragen dazu:Danke im Voraus für Eure Hilfe!
Lg
Marc