Gibts hier wen der VBA drauf hat??
Hab folgendes Problem:
Ich brauch Zufallszahlen von 0-4 von denen keine doppelt vorkommt.
Das mit Rnd bekom ich hin, nur aber das doppelte nicht vorkommen des pack ich ned.
Thx Flo
Need help in VBA
Moderatoren: Asifish, king-pat
- Cali
- MIA Team Member
- Beiträge: 8816
- Registriert: 10 Dez 2002, 17:58
- Spielt gerade: Cardgame against humanity
- Lieblingsspiel: PSO Dreamcast
- Wohnort: Stuttgart
- Kontaktdaten:
ich arbeite nie mit VBA,
brauchst du es für Excel?
Hier ne Funktion:
Beim Aufruf der Funktion einfach die folgenden Parameter übergeben:
Function RandLotto(0, 4, 1) As String
Du erhältst dann eine Zahl zw. 0-4.
Wenn du es selbst lösen willst:
Schau einfach mal, was man als Zufallszahl alles zurückbekommen kann und wie man es multipliziert oder dividiert und rundet, dass nur 0-4 rauskommen kann.
Oder du prüfst in einer Schleife ab, ob die Zufallszahl im Bereich von 0-4 liegt und falls nicht, wird einfach wieder eine neue erzeugt (nicht die beste Lösung aber die simpelste)
brauchst du es für Excel?
Hier ne Funktion:
Code: Alles auswählen
Function RandLotto(Bottom As Integer, Top As Integer, _
Amount As Integer) As String
Dim iArr As Variant
Dim i As Integer
Dim r As Integer
Dim temp As Integer
Application.Volatile
ReDim iArr(Bottom To Top)
For i = Bottom To Top
iArr(i) = i
Next i
For i = Top To Bottom + 1 Step -1
r = Int(Rnd() * (i - Bottom + 1)) + Bottom
temp = iArr(r)
iArr(r) = iArr(i)
iArr(i) = temp
Next i
For i = Bottom To Bottom + Amount - 1
RandLotto = RandLotto & " " & iArr(i)
Next i
RandLotto = Trim(RandLotto)
End Function
Function RandLotto(0, 4, 1) As String
Du erhältst dann eine Zahl zw. 0-4.
Wenn du es selbst lösen willst:
Schau einfach mal, was man als Zufallszahl alles zurückbekommen kann und wie man es multipliziert oder dividiert und rundet, dass nur 0-4 rauskommen kann.
Oder du prüfst in einer Schleife ab, ob die Zufallszahl im Bereich von 0-4 liegt und falls nicht, wird einfach wieder eine neue erzeugt (nicht die beste Lösung aber die simpelste)