ich will jetzt mal anfangen mich mit Arrays auseinander zu setzten. Hab davon aber bisher nicht viel bis gar keine Ahnung.
Folgedes Vorhaben:
Ich lese den Tabellenbereich A1:D12 in ein Array (arr1)
In Spalte D sind einige Einträge mit einem x markiert.
Diese Einträge will ich aus arr1 in arr2 übergeben.
arr2 soll dann auf einer Userform an eine 4-spaltige Listbox übergeben werden.
Das was ich mir zusammengestrickt habe funktioniert auch so weit. Es hat nur einen Pferdefuß und ich weiß nicht warum.
Übergebe ich arr1 an die Listbox dann ist alles ok.
Übergebe ich arr2 an die Listbox dann ist dort alles um eine Spalte nach rechts versetzt. Sprich die erste Spalte der Listbox ist leer und dadurch wird die Spalte D in der Listbox nicht angezeigt.
Erweitere ich die Listbox um eine Spalte dann sieht man, dass alles im arr2 vorhanden ist, nur _ halt um eine Spalte versetzt in der Listbox angezeigt wird.
Private Sub UserForm_Initialize()
Dim arr1 As Variant, arr2 As Variant
Dim anzahl As Long, i As Long, z As Long
arr1 = Worksheets("Tabelle1").Range("A1:D12")
For i = LBound(arr1) To UBound(arr1)
If arr1(i, 4) = "x" Then
anzahl = anzahl + 1
End If
Next i
ReDim arr2(anzahl - 1, 4)
For i = LBound(arr1) To UBound(arr1)
If arr1(i, 4) = "x" Then
arr2(z, 1) = arr1(i, 1)
arr2(z, 2) = arr1(i, 2)
arr2(z, 3) = arr1(i, 3)
arr2(z, 4) = arr1(i, 4)
z = z + 1
End If
Next i
'Me.ListBox1.List = arr1
Me.ListBox1.List = arr2
End Sub
Gruß Werner