Listbox in Array

Hallo,
Ich lege 6 zufalls Zahlen in eine Listbox mit listbox.items.add das geht auch alles gut. Nur dann will ich die Zahlen per Knopfdruck in sortieren. Dafür will ich sie in ein Array legen. Hab im Internet schon überall geguckt und rumprobiert und iwi krieg ichs nicht hin.

Wenn mir jemand helfen kann wärs super.
Vielen Dank im Vorraus

Hallo,

Ich lege 6 zufalls Zahlen in eine Listbox mit
listbox.items.add das geht auch alles gut. Nur dann will ich
die Zahlen per Knopfdruck in sortieren. Dafür will ich sie in
ein Array legen. Hab im Internet schon überall geguckt und
rumprobiert und iwi krieg ichs nicht hin.

nur zum besseren Verständnis.

Du erzeugst 6 Zufallszahlen, schreibst die erst in eine Liste, dann möchtest Du die in ein Array übertragen, dort sortieren und sortiert wieder in die Liste zurück schreiben?

Das ist kein Problem, aber warum?

Du kannst entweder die erzeugten Zahlen gleich in ein Array schreiben, dort sortieren und dann in der Liste anzeigen oder noch einfacher …

Du stellst die Eigenschaft ‚Sorted‘ der Liste auf ‚True‘ und VB zeigt die die Liste sortiert an. Du musst nur führende Nullen mit schreiben. Wenn Deine höchste Zahl also 49 ist, müssen die Zahlen von 1 bis 9 eine Null davor bekommen … 01, 02, … 09, 10 …

Option Explicit

Private Sub Command1\_Click()
 Dim r As Integer, i As Integer
 For i = 1 To 6
 r = Int(Rnd(1) \* 49) + 1
 List1.AddItem Right("0" & CStr(r), 2)
 Next
End Sub

Sollte es dabei um Lotto gehen … So kommst Du nicht zum Ziel.
Du bekommst dauernd Zahlen doppelt.
Das löst man, indem man wirklich ‚zieht‘, also ein Array mir 49 Feldern mit den Zahlen von 1 bis 49 füllt, das Array ‚mischt‘ und dann sechs Felder aus diesem Array ‚zieht‘. Beim ziehen genügt es, sechs aufeianderfolgende Felder aus dem Array zu lesen, am Zufallsergebnis ändert das grundsätzlich nichts.

Mischen und ziehen:

Option Explicit

Dim Kugel(1 To 49) As Integer

Private Sub Command1\_Click()
 Dim i As Integer, r As Integer, m As Integer
 Randomize Timer
 List1.Clear
 For i = 1 To 49
 Kugel(i) = i
 Next
 For i = 49 To 1 Step -1
 r = Int(Rnd(1) \* i) + 1
 m = Kugel(i)
 Kugel(i) = Kugel(r)
 Kugel(r) = m
 Next
 For i = 1 To 6
 List1.AddItem Right("0" & CStr(Kugel(i)), 2)
 Next
End Sub

Gruß Rainer