Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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 in Spalten A bis F bis Ende Tab

Zufallszahlen in Spalten A bis F bis Ende Tab
03.04.2016 09:00:21
Dieter(Drummer)
Guten Morgen, VBA Spezialisten,
ich suche für folgendes Problem eine VBA Lösung:
1) Es sollen in den Spalten A bis F Zufallszahlen (Ganzzahlen) von 1 bis 49 erzeugt werden.
2) Dies soll von Anfang bis ans Ende der Tabelle (Spalten A bis F) gehen.
3) Dann sollen die 6 am meisten vorkommenden Zahlen 1 bis 6 angezeigt werden, könnte z.B. per Msgbox sein.
Wäre schön, wenn es da eine Lösung gibt.
Gruß, Dieter(Drummer)

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Etwas gefunden, aber ...
03.04.2016 09:32:58
Dieter(Drummer)
Das habe ich im Forum (Herber) von Manfred gefunden nur werden hier nicht dei Zahken 1 bis 49 erzeugt. Was muss geändert werden?:
Sub ZufallszahlenErzeugen()
Dim Bereich As Range
Dim zelle As Range
Set Bereich = Range("A1:F1")'Angepasst
For Each zelle In Bereich
zelle.Value = Int((100 * Rnd) + 1)
Next zelle
End Sub

Gruß, Dieter(Drummer)

AW: Habe es schon selbst geändert und ...
03.04.2016 09:36:35
Dieter(Drummer)
... es funktioniert:
Sub ZufallszahlenErzeugen()
Dim Bereich As Range
Dim zelle As Range
Set Bereich = Range("A1:F1")
For Each zelle In Bereich
zelle.Value = Int((49 * Rnd) + 1)
Next zelle
End Sub

Gruß, Dieter(Drummer)

Anzeige
Nun brauchst Du nur noch Rondomize, Dieter ...
03.04.2016 10:14:14
Matthias
Hallo
... denn sonst werden bei jedem Neustart der Datei die gleichen Zahlen
ermittelt. Was dann ja kein Zufall mehr wäre ;-)
Gruß Matthias

AW: Danke Matthias und ...
03.04.2016 11:27:09
Dieter(Drummer)
... das hatte ich schon geändert + Beep:
Private Declare Function Beep Lib "kernel32" (ByVal Fq As Long, ByVal Tm As Long) As Long
Sub ZufallszahlenErzeugen()
Beep 1000, 500
Dim Bereich As Range
Dim zelle As Range
Application.ScreenUpdating = False
Set Bereich = Range("A:F")
For Each zelle In Bereich
zelle.Value = Int(Rnd() * 49) + 1
Next zelle
Application.ScreenUpdating = True
Beep 1000, 500
End Sub

Wie du siehst, geht es bis Ende der Tabelle und dauert 5 Minuten und ist ok.
Frage: wie kann ich nun alle Zeilen aufsteigend sortieren (und alle Spalten) bis Ende Tabellenblatt?
Ich bekomme es einfach nicht hin! Wäre schön, wenn du mir da mit VBA helfen kannst.
Anbei Testdatei: https://www.herber.de/bbs/user/104733.xlsm
Ich suche dann auch noch eine VBA Lösung, dass ich die häufigste Kombination der 6er Zahlen angezeigt bekomme.
Wäre toll, wenn ich schonmal eine VBA Sortierung hätte.
Gruß, Dieter(Drummer)

Anzeige
AW: Zufallszahlen in Spalten A bis F bis Ende Tab
03.04.2016 13:03:21
snb
Viel schneller:
Sub M_snb()
sn = Range("A:F")
Randomize
For j = 1 To UBound(sn)
For jj = 1 To UBound(sn, 2)
sn(j, jj) = Int(49 * Rnd())
Next
Next
Range("A:F") = sn
End Sub

AW: Danke SNB, aber ...
03.04.2016 14:23:54
Dieter(Drummer)
... da fehlt mir die Variablendeklaration von "sn"? Wäte nett, wenn du diese noch angibst.
Gruß, Dieter(Drummer)

AW: Sorry SNB, dein Makro läuft bei mir nicht
03.04.2016 14:59:03
Dieter(Drummer)
es fehlen Variablendeklarationen. Kannst du mir da noch mit helfen?
Gruß, Dieter(Drummer)

AW: Sorry SNB, dein Makro läuft bei mir nicht
03.04.2016 15:22:37
snb
Lösche 'option explicit'

AW: Habe 'option explicit' gelöscht, Fehler bei ..
03.04.2016 17:16:35
Dieter(Drummer)
..."UBound", erwartet Datenfeld. Hast du noch eine Idee?
Gruß, Dieter(Drummer)

Anzeige
AW: Zufallszahlen in Spalten A bis F bis Ende Tab
03.04.2016 17:10:25
Fennek
Hallo,
xl-Zufallszahlen sind [0,1) verteilt, also liefert die gezeigte Formel Wert zwischen 0 und 48. Mit '+1' sollte es passen.
Mfg

AW: Danke Fennek für Info, aber ...
03.04.2016 17:21:44
Dieter(Drummer)
... wo soll das "+1" eingesetzt werden?
Gruß, Dieter(Drummer)

AW: Danke Fennek für Info, aber ...
03.04.2016 17:29:20
Fennek
Hallo,
nach meinem Verständnis wäre es

Int(rnd()*49+1)
Mfg

AW: Ist so falsch? Hier Makro ...
03.04.2016 17:39:53
Dieter(Drummer)
...

Sub ZufallszahlenErzeugen()
Beep 1000, 500
Dim Bereich As Range
Dim zelle As Range
Columns("A:F").ClearContents 'löschen alte Zufallszahlen A:F
Application.ScreenUpdating = False
Set Bereich = Range("A:F")
For Each zelle In Bereich
zelle.Value = Int(Rnd() * 49) + 1
Next zelle
Application.ScreenUpdating = True
Beep 1000, 500
End Sub

Dieses Makro funktioniert! Dein Makro läuft immer noch nicht.
Gruß, Dieter(Drummer)

Anzeige
AW: Danke Fennek , jetzt geht dein Makro ...
03.04.2016 17:52:57
Dieter(Drummer)
... uns ist tatsächlich schneller. Danke dafür.
Gruß, Dieter(Drummer)

AW: beim "befüllen" hält eine Formel mit ...
03.04.2016 14:11:47
...
Hallo Dieter,
... hatte gerade mal Die Zahlen mit dem Makro von snb gefüllt und anschließend in A:F die Formel
=ZUFALLSBEREICH(1;49) wirken lassen. Hab nicht gemessen, aber die Formellösung hält da mE zumindest locker mit.
Interessant wird es ja erst bei der Auswertung. Die gemäß Deiner Aufgabe 3) zu ermittelten sechs am meisten vorkommenden Zahlen, können auch mit einer Formel ausgewertet werden.
Aber da geht es zeitlich schon ans "Eingemachte". Für nur 100000 (die restlichen hatte ich für den Test wieder gelöscht) Datensätze hält es sich noch in Grenzen (unter 5 sec).
Meine momentane Formel dafür:
=REST(AGGREGAT(14;6;ZÄHLENWENN(A:F;ZEILE(A$1:A$49))+ZEILE(A$1:A$49)%;ZEILE(A1));1)/1%
und diese 5 Zeilen nach unten ziehend kopieren.
Teste mal für schrittweise (z.B. 50.000, 100.000, 250.000 ...) mehr Datensätze.
Gruß Werner
.. , - ...

Anzeige
AW: Danke erstmal Werner. Ich teste und ...
03.04.2016 14:32:57
Dieter(Drummer)
... melde mich wieder.
Gruß, Dieter(Drummer)

AW: Danke Werner ...
03.04.2016 15:13:01
Dieter(Drummer)
... ich habe deine Formel =REST(AGGREGAT(14;6;ZÄHLENWENN(A:F;ZEILE(A$1:A$49))+ZEILE(A$1:A$49)%;ZEILE(A1));1)/1% in Zelle G1 kopiert und dann bis G6 nach unten gezogen. Es werden dann 6 verschiedene Zahlen gezeigt und dies sind dann wohl die 6 am häufigsten vorkommenden Zahlen der Zeilen/Spalten A:F bis Ende Tab.
Vielen Dank für deine Hilfe und Lösung, dies hilft mir schon weiter.
Gruß, Dieter(Drummer)

AW: ja, die 6 am häufigsten gelisteten Zahlen owT
03.04.2016 16:05:26
...
Gruß Werner
.. , - ...

AW: beim "befüllen" hält eine Formel mit ...
03.04.2016 15:26:12
snb
Wenn es richtig zufallszahlen sind kommen alle (grosze anzahlen vorausgesetzt) in geleiche Frekwewnzen vor.

Anzeige
AW: es sind ja "nur" max 6 Mio Zufallszahlen owT
03.04.2016 16:04:09
...
Gruß Werner
.. , - ...

AW: Zufallszahlen in Spalten A bis F bis Ende Tab
03.04.2016 17:52:30
Fennek
Hallo,
wenn du Häufigkeiten berechnest, mach das doch für alle 49 Zahlen. Bei dieser großen Stichprobe sollte die Häufigkeit fast gleich sein.
Mfg

AW: Danke Fennek, jetzt klappt alles ...
03.04.2016 17:55:05
Dieter(Drummer)
... Noch einen schönen Tag und herzlichen Dank.
Gruß, Dieter(Drummer)

AW: Zufallszahlen in Spalten A bis F bis Ende Tab
03.04.2016 21:19:18
snb

Sub M_snb()
ReDim sp(1 To 6, 1 To 2)
Range("A:F").Name = "snb_001"
[snb_001] = "=int(49*rand())+1"
sn = [frequency(snb_001,row(1:50))]
For j = 1 To 6
sp(j, 1) = Application.Match(Application.Large(sn, j), sn, 0)
sp(j, 2) = Application.Large(sn, j)
Next
Cells(1, 10).Resize(UBound(sp), UBound(sp, 2)) = sp
End Sub

Anzeige
AW: Lotto Tipp für ALLE ... ist fertig ...
04.04.2016 18:11:03
Dieter(Drummer)
... hier ist meine fertige Version, die ich mit sehr guter Hilfe und viel Geduld aus dem Forum erstellen konnte. Dafür nochmal meinen herzlichen Dank!
Mir hat es sehr viel Spass gemacht und ich möchte die fertige Version allen, die daran Interesse haben, zur Verfügung stellen.
Gruß, Dieter(Drummer)
Datei: https://www.herber.de/bbs/user/104754.xlsm

AW: Danke snb, perfekt und ...
04.04.2016 08:46:19
Dieter(Drummer)
... unter einer Minute.
Danke für deine Hilfe, es hat mir sehr geholfen.
Gruß und einen erfolgreiche Tag, Dieter(Drummer)

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige