Hallo Fedjo,
Das Problem liegt darin, wie das das Dictionary-Objekt verwendest.
Der Key im Dictionary Objekt ist immer unique also eindeutig. Wenn
du die Keys über die .Add Methode hinzufügen würdest, würdest du
eine entsprechende Fehlermeldung bekommen, dass dieser Key
bereits vorhanden ist und nicht nochmal hinzugefügt werden kann.
Dein Code hingegen weist dem im vorherigen Schritt angelegten,
bestehenden Key lediglich einen neuen Wert zu, der zufällig auch 0
ist. Daher läuft der Code bei dir durch und du hast nur 2 Werte in der
Combobox.
Warum machst du überhaupt den Umweg über das Dictionary-
Objekt, Dieses ist dazu gedacht einen Wert (z.B. "A") in einen
anderen (z.B. 1) zu übersetzen und nicht um virtuell zu sortieren.
Hier eine Alternative
arrDaten = Range("F4", Range("F4").End(xlDown))
arrSort arrDaten
UserForm1.ComboBox27.List = arrDaten
Sub arrSort(VA_Array)
ReDim x_Array(LBound(VA_Array) To UBound(VA_Array))
For i = 1 To UBound(VA_Array)
x_Array(i) = Application.WorksheetFunction.Small(VA_Array, i)
Next i
VA_Array = x_Array
End Sub
Wenn du deine Comboboxen so füllst, sollte das Ergebnis wie
gewünscht sein, und du kannst auf das unübersichtliche Quicksort
verzichten.
Gruß Mr. K.