Supportnet / Forum / Tabellenkalkulation
VBA Collection
Frage
ich habe eine Collection erstellt, die ich mit Zeitwerten befülle. Ich möchte dann diese Collection Absteigend sortieren. Das habe ich nicht hinbekommen und versucht die Werte gleich beim einfügen in die Collection zu sortieren.
Das klappt auch nicht wirklich.
Kann man eine Collection im nachhinein sortieren? Ohne großen Aufwand wenn möglich?
Antwort 1 von Saarbauer
Hallo,
da deine Angaben etwas mager sind, könnte mit "Daten";Sortieren" funktionieren.
Sonst solltest du mal genauer erklären was du vorhast und was du unter Collection verstehst, sowie den Aufbau deiner Tabelle.
U.U. ist dein Problem auch mit einem aufgezeichneten Makro zu lösen, falls du eine VBA-Lösung brauchst
Gruß
Helmut
da deine Angaben etwas mager sind, könnte mit "Daten";Sortieren" funktionieren.
Sonst solltest du mal genauer erklären was du vorhast und was du unter Collection verstehst, sowie den Aufbau deiner Tabelle.
U.U. ist dein Problem auch mit einem aufgezeichneten Makro zu lösen, falls du eine VBA-Lösung brauchst
Gruß
Helmut
Antwort 2 von vollmondgierig
also ich denke ich habe das problem mittlerweile selbst gelöst.
hab die werte aus einer spalte eines tabellenblatts gezogen und wollte die eben innerhalb der collection sortieren um die höchsten 5 werte ausgeben zu können
jetzt hab ich mich aber für ein array entschieden und eine variante gefunden dieses array noch zu sortieren. ob das klappt stellt sich gleich heraus
allerdings hab ich feststellen müssen, dass der redim befehl bei zweidimensionalen arrays nicht funktioniert. stimmt das?
hab die werte aus einer spalte eines tabellenblatts gezogen und wollte die eben innerhalb der collection sortieren um die höchsten 5 werte ausgeben zu können
jetzt hab ich mich aber für ein array entschieden und eine variante gefunden dieses array noch zu sortieren. ob das klappt stellt sich gleich heraus
allerdings hab ich feststellen müssen, dass der redim befehl bei zweidimensionalen arrays nicht funktioniert. stimmt das?
Antwort 3 von Beverly
Hi,
bei mehrdimensionalen Arrays muss nur das letzte Feld variabel gestaltet werden:
Um die 5 größten Werte aus einem Array auszulesen muss es nicht sortiert werden:
Einfacher wäre es allerdings, wenn du die Werte direkt aus der Tabelle auslesen würdest, da kannst du dir den Umweg über das Array sparen:
Bis später,
Karin
bei mehrdimensionalen Arrays muss nur das letzte Feld variabel gestaltet werden:
arrWerte(0 To 2, 0 To loVariabel)
Um die 5 größten Werte aus einem Array auszulesen muss es nicht sortiert werden:
Cells(2, 1) = WorksheetFunction.Max(arrWerte())
Cells(3, 1) = WorksheetFunction.Large(arrWerte(), 2)
Cells(4, 1) = WorksheetFunction.Large(arrWerte(), 3)
Cells(5, 1) = WorksheetFunction.Large(arrWerte(), 4)
Cells(6, 1) = WorksheetFunction.Large(arrWerte(), 5)
Einfacher wäre es allerdings, wenn du die Werte direkt aus der Tabelle auslesen würdest, da kannst du dir den Umweg über das Array sparen:
Cells(2, 1) = WorksheetFunction.Max(Range("C1:C1000"))
Cells(3, 1) = WorksheetFunction.Large(Range("C1:C1000"), 2)
Cells(4, 1) = WorksheetFunction.Large(Range("C1:C1000"), 3)
Cells(5, 1) = WorksheetFunction.Large(Range("C1:C1000"), 4)
Cells(6, 1) = WorksheetFunction.Large(Range("C1:C1000"), 5)
Bis später,
Karin