Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1196to1200
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zufallszahlen n. System per VBA

Zufallszahlen n. System per VBA
amintire
Hallo alle zusammen,
ich habe eine Excel Tabelle (siehe Beispielmappe) in der per VBA Zufallszahlen generiert werden sollen.
https://www.herber.de/bbs/user/73128.xls
In der Zelle B2 muss eine Zahl von 1-16 eingetragen werden, wenn z.B. eine 7 eingetragen wird, dann soll per VBA Zufallszahlen von 1-60 generiert werden (also 7 Zahlen von 1-60) die sollen jeweils pro Spalte B8-B23 eingetragen werden. In dem Beispiel bei 7 Zahlen in der Spalte B8-B14.
Der gesamte blau markierte Bereich soll mit Zufallszahlen gefüllt werden, wobei sich nur insgesamt 3 Zahlen pro Spalte wiederholen dürfen.
Hoffe das es nicht zu kompliziert ist und freue mich auf jeden Lösungsvorschlag.
Vielen Dank für eure Hilfe.
Lieben Gruß
Amina

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Zufallszahlen mit VBA
18.01.2011 14:58:29
Matthias
Hallo
Zitat:
Der gesamte blau markierte Bereich soll mit Zufallszahlen gefüllt werden, wobei sich nur insgesamt 3 Zahlen pro Spalte wiederholen dürfen.
3 Fragen:
Dürfen oder müssen/sollen sich Zufallszahlen wiederholen ?
Darf man den Hintergrund erfahren, um evtl. einen anderen Weg zu testen ?
Aus welchem Grund stehen die Zahlen 1 - 60 in Zeile 5 ?
Hab dennoch mal ein bisschen gebastelt:
im Beispiel nur für Spalte(B)!
B2 ist mit Daten/Gültikeit begrenzt!
Sub Zufall()
Dim schleife As Long, x As Long, MyWert, y As Long
schleife = Range("B2").Value
Range("B8:B23").ClearContents
y = 8
For x = 1 To schleife
MyWert = Int((60 * Rnd) + 1)
Cells(y, 2).Value = MyWert
y = y + 1
Next
End Sub
https://www.herber.de/bbs/user/73130.xls
Gruß Matthias
Anzeige
AW: Zufallszahlen mit VBA
18.01.2011 15:11:36
amintire
Hallo Matthias,
vielen Dank für deine schnelle Antwort. Habe aber einen Fehler in deiner Beispieldatei entdeckt, also pro Spalte sollen sich keine Zahlen wiederholen. Aber im gesamten blauen Bereich können sich maximal drei Zahlen wiederholen.
Zu deinen Fragen:
Dürfen oder müssen/sollen sich Zufallszahlen wiederholen ?
Es dürfen sich Zufallszahlen wiederholen, aber nur maximal drei Zahlen pro Spalte. Muss aber keine Bedingung sein, also wenn sich Zahlen wiederholen sollten dann eben nur maximal drei Zahlen.
Darf man den Hintergrund erfahren, um evtl. einen anderen Weg zu testen ?
Statistische Auswertungen per Zufall ;)
Aus welchem Grund stehen die Zahlen 1 - 60 in Zeile 5 ?
Hierbei gibt es keinen Grund, ist nur als Info das eben die Zahlen 1-60 per Zufall generiert werden sollen, evtl. hätte man es für den Code benötigt?
Vielen Dank,
Amina
Anzeige
was willst denn denn nun wirklich ?
18.01.2011 15:52:15
Matthias
Hallo
Du solltest schon wissen was Du willst !
Zitate:
Es dürfen sich Zufallszahlen wiederholen, aber nur maximal drei Zahlen pro Spalte. Muss aber keine Bedingung sein, also wenn sich Zahlen wiederholen sollten dann eben nur maximal drei Zahlen. ...
also pro Spalte sollen sich keine Zahlen wiederholen. Aber im gesamten blauen Bereich können sich maximal drei Zahlen wiederholen.

was willst denn denn nun wirklich ?


Das war also keine Fehler in meiner Datei, sondern es war ein Beispiel mit dem Ansatz,
wie Du da rangehen könntest.
Im unteren Bereich wird per ZählenWenn ausgewertet wie oft sich ein Wert in der Spalte B wiederholt
Bei einem Wert größer 3 bekommst Du in Spalte(1) per bedingter Formatierung eine Meldung.
Ist also der Max(Wert) größer 3 sollte das Makro wiederholt werden.


und wie stellst Du Dir das vor:
16x30 Zellen hat Dein blau umrahmter Bereich. Das sind 480 Zellen in denen ein Zufallswert stehen kann
Du wilst aber Zufallszahlen nur von 1-60 und zwar 1 bis 16 Zahlen pro Spalte!
Wie willst Du 480 Zellen mit Zufallszahlen bis max. 60 füllen, wenn sich im Bereich max. 3 Zahlen wiederholen dürfen ?
Also entweder hab ich Dich total falsch verstanden, oder Du hast einen Denkfehler.
Gruß Matthias
Anzeige
AW: was willst denn denn nun wirklich ?
18.01.2011 16:12:35
amintire
Hallo Matthias,
war natürlich mein Fehler es verständlich zu erklären ;)
Wenn mehr zahlen notwendig sind die sich wiederholen sollen geht das natürlich auch. Also wenn in einer Spalte z.B. 1-2-3 vorkommt könnten die sich in jeder Spalte wiederholen, können auch 4 oder 5 Zahlen sein. Aber in einer Spalte sollen dann verschiedene Zahlen sein (keine doppelten)
Gruß
Amina
mal als neuer Ansatz ...
18.01.2011 16:46:55
Matthias
Hallo Amina
Das lässt sich bestimmt auch schneller mit einer Schleife über alle Spalten und in einer Prozedur lösen.
Dies soll Dir nur einen Weg zeigen, wie Du das machen könntest.
https://www.herber.de/bbs/user/73133.xls
ist (Amina) eigentlich männl. oder weibl. ?
Gruß Matthias
Anzeige
AW: mal als neuer Ansatz ...
18.01.2011 16:53:36
amintire
Hallo Matthias,
das sieht schon mal gut aus, vielen lieben Dank dafür.
Werde dann die anderen Spalten weiterbearbeiten.
Amina ist ein weiblicher Name ;)
Gruß Amina
Korrektur !!
18.01.2011 17:36:49
Matthias
Hallo
Ich habe in der Datei noch einen Fehler endeckt !
Im unteren Bereich hatte ich immer nur mit Spalte B verglichen.
Somit sind "Doppelte" möglich.
Hier mal der neue Code und in einer Prozedur für alle Spalten (und korrigiert ...)
Option Explicit
Sub Zufall()
Dim schleife As Long, x As Long, MyWert, y As Long, SpZ As Long
Randomize
schleife = Range("B2").Value
Application.ScreenUpdating = False
For SpZ = 2 To 31
neu:
Range(Cells(8, SpZ), Cells(23, SpZ)).ClearContents
y = 8
For x = 1 To schleife
MyWert = Int((60 * Rnd) + 1)
Cells(y, SpZ).Value = MyWert
y = y + 1
Next
If Cells(25, SpZ)  1 Then GoTo neu
Next
Application.ScreenUpdating = True
End Sub
neue Bsp.Datei:
https://www.herber.de/bbs/user/73134.xls
bei 16 Zufallszahlen pro Spalte dauert es allerdings etwas länger!
Ansonsten sollte es aber funktionieren.
Gruß Matthias
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige