Seite 1 von 1

Need help in VBA

Verfasst: 04 Jun 2007, 14:08
von FRoy
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

Verfasst: 04 Jun 2007, 15:20
von Cali
ich arbeite nie mit VBA,
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
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)

Verfasst: 04 Jun 2007, 21:03
von Kenshin
So mit dem Array hätte ich es in C / C++ und Java auch gelöst, mit vB hab ich mich nicht auseinandergesetzt

Verfasst: 04 Jun 2007, 22:59
von FRoy
Danke vielmals!