Excel-Zufall : Es passiert immer der gleiche Zufall !?

... komplette Frage anzeigen

2 Antworten

Initialisiere den Zufallsgenerator mit

Randomize Timer

am Anfang des Codes.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
04.09.2016, 14:11

DH!

braucht es das immer noch? hab ich nie gemacht und es funktioniert bei mir immer!

Aber ich hätte an sowas deshalb nie gedacht und vllt hilt es dem Frager ja!

0

Da sind möglicherweise Missverständnisse drin.

  • Mit Set r = Range("B2:K32") definierst du einen Bereich mit nur 1 Area. Im Kommentartext finde ich  keinerlei Bezug zu dem, was in der Befehlszeile läuft.
  • zufallsbereich = Int(Rnd() * r.Areas.Count) + 1 : Da Rnd()=0..<1 ist Int(<1+1) immer 1 (könnte aber auch  beabsichtigt sein,)
  • zufallszelle = Int(Rnd() * r.Areas(zufallsbereich).Cells.Count) + 1 ist ergo
  • = Int(Rnd() * r.Areas(1).Cells.Count) + 1 und sollte tatsächlich eine Zellnummer >1 in Area1 ergeben, ist richtig
  • Da ich keinen wirklichen Fehler finde, hab ich vor End Sub noch diese Zeile eingefügt:
  • Debug.Print r.Areas(zufallsbereich).Cells(zufallszelle).Address & ", "



Daraufhin hab ich das Makro mal laufen lassen, dann einem Knopf zugewiesen, 
mit diesem Ergebnis (im Direktfenster, in Tabelle aneinandergehängt):

$D$11, , $B$22, , $H$10, , $G$27, , $G$32, , $B$9, , $E$32, , $G$18, , $K$32, , $F$2, , $C$5, , $I$26, , $F$3, , $J$13, , $F$31 ,  

ab hier Colorindex = 4 = grün, Datei geschlossen und wieder geöffnet:

$G$18, , $K$10, , $B$26, , $G$25, , $K$23, , $J$14, , $G$26, , $J$31, , $I$3, , $D$13, , $I$25, , $E$20,

Du siehst, bei mir funktioniert es! ???

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
05.09.2016, 18:38

möglicherweise hat es bei der ersten Probe deshalb lauter unterschiedliche Werte geliefert, weil ich vorher schon etliche Male Rnd abgefragt hatte. Wie im Kommentar zu Dee-Dees AW vermerkt, hat es ohne  Randomize Timer nach einem Start und einem Neustart der Datei sehr wohl gleiche Wertepaare geliefert.

Der Teufel ist eben ein Eichhörnchen - auch in VBA!

0

Was möchtest Du wissen?