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
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.
„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.“
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.
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
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
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