Das Clever-Excel-Forum.de - Treffen
findet vom 15. - 17. September 2017 in Thüringen / Region Großer Inselsberg statt. Hotelbuchung ab sofort möglich.


Zufallszahlen erzeugen - doppelte Zahlen vermeiden
#1
Hallo liebe VBA Gemeinde,

ich brauche eure Hilfe. Ich möchte Zufallszahlen erzeugen. Eine einfache Methode wäre dies über folgende Funktion zu tun:


Code:
Dim z as Integer
For i = 10 to 1 Step -1
z = Int (i *RND + 1)
Next i

Mit diesem Code werden 10 Zufallszahlen erzeugt. Allerdings ist es möglich, dass innerhalb dieser Menge einige Zahlen doppelt oder dreifach vorkommen. Andere dafür
dann wieder überhaupt nicht. Ich bräuchte einen Code der derart mischt, dass jede Zahl innerhalb der vorgegebenen Menge immer nur einmal vorkommt. Wie mache ich das?

Danke für eure Hilfe
to top
#2
Hi,

(03.03.2015, 14:01)SonjaFido schrieb: Mit diesem Code werden 10 Zufallszahlen erzeugt. Allerdings ist es möglich, dass innerhalb dieser Menge einige Zahlen doppelt oder dreifach vorkommen. Andere dafür dann wieder überhaupt nicht. Ich bräuchte einen Code der derart mischt, dass jede Zahl innerhalb der vorgegebenen Menge immer nur einmal vorkommt. Wie mache ich das?

Du willst also 10 Zufallszahlen aus dem Zahlenraum 1-10 haben, ohne doppelte?

Dann kannst Du, ohne eine Formel zu benutzen, auch die Zahlen 1 - 10 einfach so hinschreiben. Angel
Gruß Ralf

?mage

Die deutsche Rechtschreibung ist Freeware, d.h. du kannst sie kostenlos nutzen.
Allerdings ist sie nicht Open Source, deswegen darfst du sie nicht verändern oder in veränderter Form veröffentlichen.
to top
#3
Auch Hallo,

in VBA kannst Du das z.B. so machen.

Die Zahlen 1 bis 10 in ein Array schreiben, eine Zufallszahl 1...10 ziehen, das Array-Element mit diesem Index nehmen.

Dieses Array-Element mit dem letzten Array-Element überschreiben. Eine Zufallszahl 1...9 ziehen ...

cu, Bernd
--

Code:
Option Explicit


Sub x()
   Dim a, b(1 To 10) As Integer, i As Integer, j As Integer
   
   a = [transpose(row(1:10))]
   
   Randomize
   For i = 10 To 1 Step -1
      j = Int(i * Rnd() + 1)
      b(i) = a(j)
      a(j) = a(i)
   Next
   
   Cells(1, 1).Resize(, 10) = b
End Sub
to top
#4
Hallo,

hier gibt es einen Lottozahlengenerator, der macht sowas:

http://www.clever-excel-forum.de/Thread-...zahlen-VBA

und hier auch noch was:

http://www.clever-excel-forum.de/Thread-...generieren
Gruß


Opa Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
to top


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Doppelte Werte aus zwei Spalten anzeigen JulyVienna 7 80 19.02.2017, 20:14
Letzter Beitrag: JulyVienna
Question VBA Doppelte Werte löschen Kirschgurke 1 51 17.02.2017, 22:13
Letzter Beitrag: schauan
  VBA - doppelte Werte löschen - Bedingung Kirschgurke 4 105 13.02.2017, 13:11
Letzter Beitrag: Kirschgurke
  Überprüfen von Zufallszahlen bei übereinstimmung verbundenen Wert berrechnen Obi-1989 4 81 10.02.2017, 18:44
Letzter Beitrag: lupo1
  Doppelte Werte einfärben nur WENN Cherry 2 54 10.02.2017, 11:54
Letzter Beitrag: Cherry
  Zahlen aus mehreren Zellen zusammenfügen / Zahlen auch mit 0 beginnend JoergPorsch 3 73 09.02.2017, 22:32
Letzter Beitrag: JoergPorsch
Question Doppelte PLZ in verschiedenen Zellen suchen und anzeigen lassen KarinG 17 180 08.02.2017, 15:28
Letzter Beitrag: atilla
  Leeres Tabellenblatt vermeiden DrWahnsinn 5 144 07.02.2017, 11:40
Letzter Beitrag: DrWahnsinn
  Tabellenblätter erzeugen: Anhand Liste und verschiedener Vorlagen erstellen Thermes 14 211 06.02.2017, 12:43
Letzter Beitrag: Thermes
  Mail per VBA erzeugen und automatisch Link in Inhalt einfügen eitel91 4 99 31.01.2017, 13:09
Letzter Beitrag: eitel91

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste