Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

mehrere Zufallszahlen aus Bereich ohne Wiederholun

Betrifft: mehrere Zufallszahlen aus Bereich ohne Wiederholun von: Dieterlem
Geschrieben am: 19.08.2008 22:05:38

Hallo Excelfreunde,

ich suche eine VBA-Lösung für Zufallszahlen. Ich habe zwar einiges gefunden aber konnte ich es nicht nach meinen Anforderungen anpassen.
Ich will eine bestimmte Anzahl (per Variable veränderbar) von Zufallszahlen generieren (Ganzzahlen).
Dabei dürfen keine Wiederholungen vorkommen. Die Zufallszahlen müssen aus einem bestimmten Bereich stammen, die ebenfalls mit Variablen festgelegt werden sollen.
Die generierten Zufallszahlen sollen in einem Tabellenblatt angezeigt werden.

Beispiel:
13 Zufallszahlen als Ganzzahl aus dem Bereich 165 bis 498 ohne Wiederholung.

Gruß
Dieterlem

  

Betrifft: AW: mehrere Zufallszahlen aus Bereich ohne Wiederholun von: Ramses
Geschrieben am: 19.08.2008 22:12:29

Hallo

Dann schau dir mal die Funktion RND() in der Hilfe an, da ist unter anderm dieses beispiel

Rnd Function Example
This example uses the Rnd function to generate a random integer value from 1 to 6.
Dim MyValue
MyValue = Int((6 * Rnd) + 1) ' Generate random value between 1 and 6.

und auch dieses

Remarks

The Rnd function returns a value less than 1 but greater than or equal to zero.

The value of number determines how Rnd generates a random number:

For any given initial seed, the same number sequence is generated because each successive call to the Rnd function uses the previous number as a seed for the next number in the sequence.
Before calling Rnd, use the Randomize statement without an argument to initialize the random-number generator with a seed based on the system timer.
To produce random integers in a given range, use this formula:

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

Um zu prüfen ob die generierte Zahl schon mal vorhanden ist, kannst du die FIND()-Methode auf deinen Tabellenzielbereich anwenden, bevor du die Zahl einträgst


Gruss Rainer


  

Betrifft: AW: mehrere Zufallszahlen aus Bereich ohne Wiederholun von: ransi
Geschrieben am: 19.08.2008 22:48:37

HAllo Dieter

KAnnst du das nachvollziehen ?

' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit



Public Sub geht()
Dim arr() As Variant
Dim L As Long
Dim I As Long
Dim tmp As Variant
Dim V As Long
Dim Z As Long
Dim Oben As Long
Dim Unten As Long
Dim W As Long
W = 13 'Wieviel Elemente
Unten = 165 'Untergrenze
Oben = 495 'Obergrenze
Redim arr(Oben - Unten)
For L = Unten To Oben 'Array mit Werten füllen
    arr(V) = L
    V = V + 1
Next
'#########
Randomize
'#########
For I = 0 To UBound(arr) 'Array mischen
    Z = Int(UBound(arr) * Rnd)
    tmp = arr(Z)
    arr(Z) = arr(I)
    arr(I) = tmp
Next
Redim Preserve arr(W) 'Die ersten 13 Werte im Array behalten
'Ausgewben
Range("A1").Resize(UBound(arr)) = WorksheetFunction.Transpose(arr)
End Sub


ransi


  

Betrifft: AW: mehrere Zufallszahlen aus Bereich ohne Wiederholun von: Dieterlem
Geschrieben am: 19.08.2008 23:17:19

Hallo Ramses,

ich habe dein Vorschlag getestet. Es funktioniert so wie ich es mir vorgestellt habe. Auf diese Weise Zufallszahlen ohne Wiederholungen zu erzeugen ist sehr elegant.



Danke für deine Mühe.


 

Beiträge aus den Excel-Beispielen zum Thema "mehrere Zufallszahlen aus Bereich ohne Wiederholun"