Moin,
Dass Du bei Deiner alten (fehlerhaften) Version und auch bei der Version mit zwei Listboxen selbst bei nur einem einzigen Treffer gleich einen Scollbalken in der Listbox hast, liegt einfach daran, dass Du ein fest dimensioniertes Array uebergibst. (siehe Deine Beispielmappe aus #12)
iirc hattest Du dort Dim Arr(100, 3) As Variant geschrieben.
Von diesem Array fuellst Du nun ein paar Zeilen und uebergibst es dann der Listbox.
Stellst Du Dir das 2dimensionale Array nun als Tabelle vor, hast Du in den ersten beiden Zeilen Werte stehen.
Die Tabelle ist aber bei Uebergabe an die Listbox immernoch 101 Zeilen lang. Daher der Scrollbalken. Ticker die Listbox einmal mit der DownArrow-Taste durch... Du solltest dabei dann immer genau auf die 101Zeilen kommen.
Daher verkleinere ich in #15 das Array mittels ReDim Preserve auf die zuvor mitgezaehlte Groesse. Allerdings kann man damit immer nur die letzte Dimension eines Arrays veraendern. Um bei dem Bild mit der Tabelle zu bleiben (erste Dimension= Zeilen, zweite Dimension= Spalten), kann man so leider nur die Anzahl der Spalten aendern, wenn man die zuvor ins Array geschriebenen Daten behalten moechte.
Zum Zeitpunkt der Dimensionierung weisst Du nun aber noch nicht, wie viele Zeilen es denn genau werden. Aendern kannst Du sie aber nicht mehr, sondern nur die Anzahl der Spalten.
Stell Dir nun weiterhin vor, dass Du die Tabelle um 90° nach links kippst. So "quer" befuellst Du nun das Array, welches Du zuvor nun mit Dim Arr(3, 100) As Variant dimensioniert hast. Du hast so nun also 4"Zeilen" und erstmal 101"Spalten". So kannst Du die Spalten mitzaehlen und nach Befuellung die ueberfluessigen "Spalten" mit ReDim Preserve "abschneiden". (Du kannst aber auch weitere "Spalten" hinzufuegen, wenn doch einmal mehr benoetigt werden. siehe #15)
Dafuer das Zeilen und Spalten dann die Plaetze tauschen, sorgt dann bei der Uebergabe Application.WorksheetFunction.Transpose. Das ist eigtl. nichts anderes als die Option "Transponieren" von Excel.
Alles in allem ergibt sich daraus fuer Deine Frage aus #16 also folgendes:
ListBox soll nun 6Spalten haben und eine ungewisse Anzahl Zeilen. Fuer das "Quer"-Befuellen brauchen wir also 6"Zeilen". ==>ReDim varArrIn(5, 1000) As Variant fuer ein 0-basiertes Array. Alle Zeilen in denen daraufhin ein ReDim Preserve steht, muessen dann in der ersten Dimension ebenfalls auf 5 geaendert werden (ReDim Preserve varArrIn(0 To 5, 0 To lngAnzAus).
Selbstredend solltest Du die Listbox dann zuvor via "Eigenschaften" oder mittels Code auch auf 6Spalten bringen. Und die Spaltenbreite der Listbox anzupassen, solltest Du auch nicht vergessen. ;-)
Cu
TheBlackBird ®