Zufallszahlen wiederholen sich bei neuem öffnen

Moin zusammen,

um bei Excel ganze Zufallszahlen erzeugen zu lassen das unten aufgeführte Modul zusammengeschrieben.
Es werden 7 Zahlen ohne Doppelte aus 1-500 generiert. Lustigerweise, wenn ich das File neu öffne und das Makro laufen lassen, sind es wieder
die gleichen 7 Zahlen beim ersten Durchgang, beim 2. Durchgang dasselbe (andere Zahlen als beim ersten Durchgang, aber die gleichen Zahlen wie beim zweiten durchgang). Beispiele siehe unten
nach dem Makro

Sub zufallz1()

Dim i As Integer
Dim tab1 As Worksheet

Set tab1 = Worksheets(„zufallz“)

tab1.Cells(2, 2) = Rnd()
tab1.Cells(2, 5) = Int(tab1.Cells(2, 2) * 500 + 1)
For i = 3 To 10
tab1.Cells(i, 2) = Rnd()
tab1.Cells(i, 5) = Int(tab1.Cells(i, 2) * 500 + 1)
For j = (i - 1) To 2 Step -1
If tab1.Cells(i, 5) = tab1.Cells(j, 5) Then i = i - 1
Next j
Next i

End Sub

353 353 353
267 267 267
290 290 290
145 145 145
151 151 151
388 388 388
8 8 8
381 381 381
408 408 408

355 355 355
23 23 23
208 208 208
432 432 432
396 396 396
187 187 187
481 481 481
436 436 436
29 29 29

475 475
183 183
263 263
384 384
27 27
297 297
235 235
150 150
312 312
Wer kann dazu was sagen?

Dnake und Gruß

Hallo,

Computer kennen keinen Zufalls selbst wenn manchmal ich anderer Meinung sein sollte. Ein Programm zur Erzeugung von Zufallszahlen arbeitet bei jedem Neustart den selben Algorithmus durch.

Siehe auch hier:

http://macherzin.net/Splitter&highlight=random#Rando…

Allgemein gilt:

„Man unterscheidet grundsätzlich zwischen nicht-deterministischen und deterministischen Zufallszahlengeneratoren. Nicht-deterministisch ist ein Zufallszahlengenerator dann, wenn er auch bei gleichen Ausgangsbedingungen unterschiedliche Werte liefert. Da die Implementierung einer Software-Prozedur immer deterministisch arbeitet, muss zur Realisierung eines nicht-deterministischen Zufallszahlengenerators ein externer, beispielsweise ein physikalischer, Vorgang einbezogen werden. Ein deterministischer Zufallszahlengenerator liefert bei gleichen Ausgangsbedingungen dagegen immer die gleiche Folge von Zahlen.“

Quelle: „http://de.wikipedia.org/wiki/Zufallsgenerator

Du müßtest also eine nicht deterministische Quelle hinzuziehen. Das ich kein Excel- noch VBA-Fachmann bin (lang ist es her), muß ich an dieser Stelle passen. Ich weiß nicht, ob und welche diesbezüglichen Funktionen VBA zur Verfügung stellt.

Grüße

godam

Es werden 7 Zahlen ohne Doppelte aus 1-500 generiert.
Lustigerweise, wenn ich das File neu öffne und das Makro
laufen lassen, sind es wieder
die gleichen 7 Zahlen beim ersten Durchgang, beim 2. Durchgang
dasselbe (andere Zahlen als beim ersten Durchgang, aber die
gleichen Zahlen wie beim zweiten durchgang). Beispiele siehe

Hallo Slam,

baue Randomize ein.

Gruß
Reinhard

Hallo Reinhard,

irgendwie stehe ich auf dem Schlauch, egal wo und wie ich randomize einbaue es bleibt das gleiche.

RAND kennt Excel 2003 nicht, nur den Befehl Randomize.

Sub zufallz1()

Dim i As Integer
Dim x as variant
Dim tab1 As Worksheet

Set tab1 = Worksheets(„zufallz“)

Randomize [x]

tab1.Cells(2, 2) = Rnd()
tab1.Cells(2, 5) = Int(tab1.Cells(2, 2) * 500 + 1)
For i = 3 To 10
tab1.Cells(i, 2) = Rnd()
tab1.Cells(i, 5) = Int(tab1.Cells(i, 2) * 500 + 1)
For j = (i - 1) To 2 Step -1
If tab1.Cells(i, 5) = tab1.Cells(j, 5) Then i = i - 1
Next j
Next i

End Sub

Gruß

slam

irgendwie stehe ich auf dem Schlauch, egal wo und wie ich
randomize einbaue es bleibt das gleiche.

Hallo Slam,

erstelle eine neue Mappe. Im Modul DieseArbeitsmappe kopierst du
den nachstehenden Code rein.

Datei Speiern/schließen.
Dann so 3-4 mal Öffnen/Speichern/Schließen.

Dann mache im Code das Hochkomma vor Randomize weg und mache das gleiche nochmal 3-4 mal…

Soweit ich weiß ist
Randimize 0
das gleiche wie wenn du Randomize wegläßt.

Randomize
ist das gleiche wie
Randomize Timer

Gruß
Reinhard

Private Sub Workbook\_Open()
Dim Zei As Long
Range("A1") = Range("A1") + 1
'Randomize
For Zei = 2 To 10
 Cells(Zei, Range("A1")) = Rnd()
Next Zei
End Sub