Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Lottozahlengenerator Österreich mit Zusatzzahl

Forumthread: Lottozahlengenerator Österreich mit Zusatzzahl

Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 10:17:16
mckater
Liebes Herber Team und Freaks der guten Kunst von VBA,

wie so oft habe ich ein Problem mit meinem Code wieder einmal.

Irgendwie ein einfacher Code, was mir nur 6 Zahlen genieren soll und das macht er auch brav und ich vermute mal, die Zahlen kommen nicht doppelt vor.

Jedenfalls gibt es in Österreich 6 aus 45 und heißt, 6 Zahlen ermitteln und dann die Zusatzzahl.
Problem! Wenn ich dem Code sage, mache es mir anstelle mit 6 Zahlen mit 7 Zahlen, wäre ja die Zusatzzahl schon dabei.
Das ist genau der Knackpunkt im Code...weil ich wenn ich i=7 sage, macht er es auch brav, aber es kommen dann doppelte Zahlen vor, was für mich nicht nachvollzuziehen ist.
Weil ich habe die Zusatzzahl im Code von 1-10 deaktiviert, weil wenn man 45 Kugeln hat und die Zusatzzahl hat dann von 1-10 ist sinnlos!
Also war meine Idee, warum nicht i=7 eingeben, weil der Code soll ja dann überprüfen ob in den 7 Zahlen eine doppelt ist.
Macht der Code aber nicht, da finde ich doppelte Zahlen in einer Zeile und das ist mein Problem.

Fazit: I=7 finde ich toll, wenn der keine doppelten Werte in die Liste schreibt!
Denn die Zusatzzahl im darauffolgenden Code brauch ich ja nicht....
Der Code soll nur mir 7 Zahlen geben von 1 bis 45 und darf nicht doppelt sein....somit habe ich 7 Zahlen die nicht gleich vorkommen.

Übrigens der Code der auch von mir ausgegrenzt wurde....einzelne Zeilen lassen sich nicht sortieren, hab alles versucht...geht nur über Spalten, aber ich will es über die Zeilen haben...aber das wäre kein Problem....wichtig wäre mir, 7 Zahlen ermitteln die nicht gleich sind.

Ich weiß, wieder eine blöde Anfrage...für Euch ist das sicherlich zum lachen*gg*

LG mckater

Excel Datei: 178134
Anzeige

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 10:38:08
SF
Hola,
du musst schon den kompletten Link zur Datei posten.
Gruß,
steve1da
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 14:57:19
daniel
Hi
dein Code enthält noch einen Grundsätzlichen Fehler.
du schreibst eine Tippreihe in eine Zeile von Spalte A-F,
die Prüfung auf doppelte machst du aber immer nur in der Spalte A
korrekterweise müsstest du aber innerhalb der Zeile prüfen, ob die Zahl schon vorkommt

If IsNumeric(Application.Match(zahl, Cells(letzteZeile, 1).Resize(1, i), 0)) = False Then



Gruß Daniel
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 16:46:16
velo
Hi,

bin zwar etwas spät zur Party, aber wollte auch noch meinen Senf dazugeben, da ich folgende Methode bisher noch nicht gesehen habe.
Vorab: Ich habe gerade keinen Zugriff auf deine Datei und diese auch nicht gesehen, dementsprechend ist meine Antwort allgemein gehalten.

Bei einem solchen Problem (ziehe x unterschiedliche Zahlen aus n Zahlen) ist meine Lösung grundsätzlich immer ein Array Shuffle:
Option Explicit


Sub Lotto()
Dim arr() As Variant
Dim newArr() As Variant
Dim i As Integer

Const maxZahl As Integer = 45 'je nachdem, ob 45 oder 49
Const AnzahlKugeln As Integer = 7 'in dem Fall 7 unterschiedliche Zufallszahlen

'Array mit den möglichen Zahlen befüllen
ReDim arr(1 To maxZahl)
For i = 1 To maxZahl
arr(i) = i
Next i

'Array Shuffle und das neue Array eingrenzen auf die gewünschte Anzahl an Kugeln
newArr = Shuffle(arr)
ReDim Preserve newArr(1 To AnzahlKugeln)

'Ausgabe der gezogenen Kugeln, kann natürlich auch in Zellen geschrieben werden
Debug.Print Join(newArr, ", ")
End Sub

Function Shuffle(arr() As Variant) As Variant
'nicht wundern, die Funktion geht in dem Fall deutlich simpler, hab sie aber aus einem anderen Projekt von mir kopiert,
'bei dem LBound dynamisch ist, anders als oben

'basiert auf bzw. ist der Fisher-Yates Shuffle Algorithmus

Dim upper As Long
Dim lower As Long
Dim i As Long
Dim j As Long
Dim temp As Variant

upper = UBound(arr)
lower = LBound(arr)

For i = upper To lower + 1 Step -1
Randomize Rnd
j = CLng((i - lower) * Rnd + lower)
temp = arr(i)
arr(i) = arr(j)
arr(j) = temp
Next i

Shuffle = arr
End Function

Mit dem newArr() kannst du dann eigentlich anfangen was du willst, entweder wie in meinem Fall in das Direktfenster schreiben oder aber auch in Zellen schreiben.

Hoffe ich konnte helfen.

VG
velo
Anzeige
Per Formel
24.07.2025 08:22:47
RPP63
In einem Excel ab 2021 oder auch Excel Online ist das eine einfache Formel:
 ABCD
1Lotto6aus45
23   
35   
424   
526   
633   
743   

ZelleFormel
A2=SORTIEREN(INDEX(SORTIERENNACH(SEQUENZ(D1);ZUFALLSMATRIX(D1));SEQUENZ(B1)))


Gruß Ralf
Anzeige
Im Anhang sind...
24.07.2025 12:30:01
Case
Moin, :-)

... zwei Möglichkeiten. Einmal per Formel (neueste Excelversion) und per Power Query (ab Excel 2016): ;-)
https://www.herber.de/bbs/user/178143.xlsx

Wenn du es per VBA willst, kannst du es (bezogen auf meine Beispieldatei) auch so machen: ;-)
Option Explicit

Public Sub Main()
With ThisWorkbook.Worksheets("Tabelle2")
.Range("N2:T" & .Cells(.Rows.Count, 14).End(xlUp).Row).ClearContents
.Range("N2:N" & .Cells(2, 4) + 1).Formula2 = "=TRANSPOSE(CHOOSEROWS(SORTBY(SEQUENCE($B$2,,$A$2),RANDARRAY($B$2)),SEQUENCE($C$2)))"
End With
End Sub


Neue Zahlen F9 drücken. Für Power Query STRG+ALT+F5. ;-)

Servus
Case
Anzeige
AW: Im Anhang sind...
24.07.2025 12:39:46
BoskoBiati
Hallo Case,

im österreichischen Lotto sind die Regeln allerdings wie folgt:
6Zahlen aus 45
1Zusatzzahl aus 10

Das erfüllen Deine Lösungen nicht.

Gruß

Edgar
Also ich kann...
24.07.2025 12:55:38
Case
Moin Edgar, :-)

... deiner Aussage nicht zustimmen. ;-)

"mckater" schrieb - Zitat:
"Denn die Zusatzzahl im darauffolgenden Code brauch ich ja nicht....
Der Code soll nur mir 7 Zahlen geben von 1 bis 45 und darf nicht doppelt sein....somit habe ich 7 Zahlen die nicht gleich vorkommen.
"

Ich weiß, dass "Österreichisches Deutsch" eine schwere Sprache ist - denke aber, dass ich das richtig verstanden habe! :-)

Servus
Case
Anzeige
Österreichisches Lotto und Zusatzzahl ist anders
24.07.2025 19:54:04
mckater
Ich muss mich erst einmal bedanken für so viele Beiträge hier nach meinem ersten Problem.

Das Ösi Lotto bzw. Österreichische Lotto basiert auf 6 Richtige Zahlen aus 45 Kugeln....
Die Zusatzzahl ist die siebte Zahl und wird ebenfalls aus den restlichen Kugeln, die noch übrig sind ermittelt.

Mir wäre das NEU, dass eine Zusatzzahl mit 1 bis 10 ermittelt werden würde!

Meiner Meinung fallen 6 Zahlen bei der Ziehung....das wären für einen sechser dann die 6 Richtigen.
Die Zusatzzahl wird aber aus den restlichen gezogen....also die übrigen Kugeln, welche noch im Behälter sind.

Habe ich da Recht oder habe ich das selber falsch verstanden?
Da wird nicht aus anderen Kugeln von 1 bis 10 eine gezogen!
Anzeige
AW: Österreichisches Lotto und Zusatzzahl ist anders
24.07.2025 20:23:49
daniel
ich kenn das österreichische Lotto nicht.
aber wenn es so ist, wie du beschreibst, musst du einfach 7 Zahlen ohne zurücklegen ziehen und die 7. ist dann die Zusatzzahl.

ein weiterer Weg, mehrere Zahlen ohne Zurücklegen zu ziehen ist, dass man die Zahlenmenge einfach per Zufall mischt und dann die ersten Werte nimmt.
da muss man dann nicht prüfen, ob man eine Zufälligen Wert schon gezogen hat.
in VBA sieht das so aus (hier mal nur für eine Ziehung):

dim Lotto(1 to 45)

dim i as long, j as long
dim x as long
dim Ergebnis

'--- Erstbefüllung
for i = 1 to 45
Lotto(i) = i
next

'--- Mischen, jeden Wert mit einem zufällig bestimmten Wert vertauschen
for i = 1 to 45
j = Worksheetfunction.RandBetween(1, 45)
x = Lotto(i)
Lotto(i) = Lotto(j)
Lotto(j) = x
Next

'--- Ergebnis auf 7 Werte reduzieren und ausgeben
Ergebnis = Lotto
Redim Preserve Ergebnis(1 to 7)

Cells(1, 1).Resize(1, UBound(ergebnis)) = Ergebnis


Gruß Daniel




Anzeige
AW: Österreichisches Lotto und Zusatzzahl ist anders
24.07.2025 20:31:40
BoskoBiati
Hi,

wenn das so ist:

=ÜBERNEHMEN(SORTIERENNACH(SEQUENZ(;45;;1);ZUFALLSMATRIX(1;45));;7)


Gruß

Edgar
AW: Also ich kann...
24.07.2025 13:25:19
BoskoBiati
Hi Case,

ich gehe mal davon aus, dass der TE nicht verständlich sagen kann, wo sein Problem liegt. Tatsache ist, wie er auch geschrieben hat:

Jedenfalls gibt es in Österreich 6 aus 45 und heißt, 6 Zahlen ermitteln und dann die Zusatzzahl.

Sein Problem liegt m.E. in erster Linie darin, dass er seinen Code nicht so anpassen kann, dass die Zusatzzahl separat ausgewiesen wird, dabei ist sein Code ja nicht so schlecht, er müsste nur die Zusatzzahl in der ersten Schleife ermitteln.

Als Formel würde das reichen:

=LET(xa;ÜBERNEHMEN(SORTIERENNACH(SEQUENZ(;45;;1);ZUFALLSMATRIX(1;45));;6);xb;ÜBERNEHMEN(SORTIERENNACH(SEQUENZ(;10;;1);ZUFALLSMATRIX(1;10));;1);HSTAPELN(SORTIERENNACH(xa;xa;1);xb))


Mit einer LAMBDA-Funktion könnte man das wohl über beliebig viele Zeilen ausdehnen, wie der TE es plant.

Gruß

Edgar

Anzeige
Habe deine...
24.07.2025 13:38:45
Case
Moin Edgar, :-)

... Formel eben getestet: ;-)

Userbild
2 x die 7 - das wollte er gerade nicht - eventuell habe ich es aber ganz falsch verstanden. ;-)

Servus
Case
Anzeige
AW: Habe deine...
24.07.2025 13:49:30
BoskoBiati
Hi Case,

ich glaube, der TE hat sowieso das Interesse verloren, deswegen lasse ich es jetzt mal dabei bewenden, dass wir die Aufgaben unterschiedlich interpretieren und beide Lösungen auf ihre Art stimmen.

Gruß

Edgar
Zusatzzahl Erklärung
24.07.2025 20:12:13
mckater
Ich muss mich so bedanken wie IHR Euch so viele Gedanken macht um mein PROBLEM!
Streitet euch bitte nicht untereinander, weil das Problem sollte ja gelöst sein.

Nochmals, was ich vor hatte:

Eine Österreichische Lottoziehung ist ein Trichter mit 45 Kugeln bzw. Zahlen.

Es werden erstmal die ersten Zahlen aus den 45 gezogen.
Dann verbleiben noch die restlichen Zahlen im Trichter.
Die Zusatzzahl wird dann gezogen aus den noch übrigen Zahlen.

Also nicht 1 bis 10 oder so wie in Deutschland mit Superzahl oder sonst was.

Im Grunde einfach.....Excel...gib mir 7 Zahlen aus dem Random, Log kann ich ja nicht beeinflussen, nicht wirklich.
Also gibt er mir 7 Zahlen in Zeile und sage, mach mir das runter bis auf Anschlag mit Schleife.
Also habe ich ja meine 6 Zahlen wie auch die 7.te. Zahl....Sie dürfen halt nicht gleich sein. Weil aus 45 Kugeln soll ja keine doppelt sein.

Natürlich würde es cool sein, wenn er mir erst die 6 Zahlen ermittelt in Zeile A1:F1 und dann aus den restlichen Kugeln, was noch übrig sind die Random aus den ÜBRIGEN, RESTLICHEN Zahlen....
Aber das wäre mir etwas zu hoch muss ich zugeben....erst sagen, mach mir 6 Zahlen in die Zeile A1:F1 und in G1 machst mir dann eine Zusatzzahl aus den restlichen, verbliebenen Zahlen....für mich etwas schwierig. (Also wie soll der wissen was schon gezogen wurde?)
Könnte man nur mit Klugheit und Arrays oder so schaffen.
Anzeige
Das Forum...
24.07.2025 22:47:12
Case
Moin, :-)

... lebt auch von seinem Archiv. Leute suchen etwas und dann ist es doch nicht schlecht, wenn es verschiedene Lösungen gibt. ;-)

Du könntest auch nach dem "Fisher–Yates shuffle" vorgehen: ;-)
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle

Das wäre dann in etwa so: ;-)
Option Explicit

Public Sub Main()
Dim lngZahlen(1 To 45) As Long
Dim strArr(1 To 7) As String
Dim lngZufall As Long
Dim lngCount As Long
Dim lngTMP As Long: lngTMP = 45
For lngCount = 1 To lngTMP
lngZahlen(lngCount) = lngCount
Next lngCount
Randomize Timer
For lngCount = 1 To 7
lngZufall = Int((lngTMP * Rnd) + 1)
strArr(lngCount) = lngZahlen(lngZufall)
lngZahlen(lngZufall) = lngZahlen(lngTMP)
lngTMP = lngTMP - 1
Next lngCount
MsgBox Join(strArr, ", "), vbInformation, "7 Lottozahlen"
End Sub

Wenn du das nehmen möchtest, kann ich dir auch noch eine Schleife drumbasteln die 10 oder 50 Ziehungen im Tabellenblatt ausgibt. ;-)

Servus
Case

Anzeige
AW: Das Forum...
25.07.2025 08:54:31
mckater
Servus Case,

Das wäre natürlich perfekt, wenn man den schon tollen Code so umbasteln könnte mit Angabe der Ziehung pro Zeile und die werden dann in die Zeilen A:F geschrieben und nach jeden Run geht er dann eine Zeile runter und so beliebig wie man will.
Ich denke mal, dass ganze wird dann über die gefüllten Arrays in die einzelnen Zellen geschrieben?

Schon mal Danke, wenn du es mir so umbasteln könntest.

Servus
mckater
Anzeige
AW: Im Anhang ist...
25.07.2025 19:33:26
mckater
Servus Case,

das ist ein ganz feiner Anhang!
Klappt ja prima und perfekt!
So wie ich sehe kommen da auch keine doppelten Zahlen vor.

Ein feiner VBA Code,.....muss ihn selber noch etwas studieren um was zu lernen.

Ich denke mein Problem ist somit mehr als gelöst mir vielen Dank für die Hilfe an den Coder.

LG mckater
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 10:41:53
mckater
Ich habe die Datei ja schon mal hochgeladen ein paar Mal....
Muss mich erst zurechtfinden, weil hier kann ich es nicht gleich einfügen....
Das wäre der Link dafür:
https://www.herber.de/bbs/user/178136.xlsm
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 11:11:12
Sigi.21
Hallo,

wie muss man das jetzt verstehen?
6 Lottozahlen von 1 - 45 (keine doppelt)
1 Zusatzzahl von 1 - 10 (?) oder auch von 1 - 45 ??

Gruß Sigi
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 12:24:41
BoskoBiati
Hi,

hier mal eine Formellösung:

=LET(xa;SEQUENZ(45);xb;MAP(xa;LAMBDA(a;ZUFALLSZAHL()));xc;SEQUENZ(10);xd;MAP(xc;LAMBDA(a;ZUFALLSZAHL()));xe;INDEX(xc;VERGLEICH(MAX(xd);xd;0));VSTAPELN(SORTIEREN(INDEX(SORTIERENNACH(xa;xb;1);SEQUENZ(6);1));"Z: "&xe))


Gruß

Edgar
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 12:36:50
mckater
Lieber Edgar, den Code verstehe ich da nicht wirklich, aber egal.
Weißt warum? Weil, wenn ich die 7 Zahlen in jeder Zeile habe, mache ich das "Zählenwenn" und der sagt mir dann schon was ich will.
Ich lasse den runter laufen bis auf 104......, was Excel zulässt und der soll mal schauen was gut oder böse ist.
Sprich, ich mach eine Auswertung über den Log von Excel, den ich schwer beeinflussen kann, wie auch in Java....schon, aber da muss man eingreifen mit viel Praxis im Excel Code vom Excel Code.
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 11:21:20
mckater
Die Zusatzzahl interessiert mich im Grunde gar nicht.
weil wenn ich i=7 eingebe, prüft der ja ob eine Zahl schon mal vorgekommen ist.
Also ist der Code Zusatzzahl egal....darum mit grün markiert und wird nicht ausgeführt.
Aber wenn ich i=7 eingebe....bekomme ich doppelte Zahlen und der soll ja prüfen das in den 7 Zellen keine gleichen vorkommen.
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 11:46:23
Sigi.21
Hallo,

jetzt bist du auf meine Frage gar nicht eingegangen: Zusatzzahl von 1-10 oder auch von 1-45??
(in deinen Code sehe ich 1-10??)
Das mit den Doppelten habe ich schon verstanden.

Gruß Sigi
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 11:58:49
mckater
Der Code mit der Zusatzzahl ist sinnlos und muss ausgegrenzt werden.
Hoffe das hab ich da gemacht in meinem Code, also grün markiert ohne Ausführung.
Weil wenn ich Zahlen suche von 1 bis 45, will ich ja nur Zahlen finden von 1 bis 45 und mache das halt mit i=7 und nicht mit i=6
Jedoch gibt das ein Problem...weil, wenn ich i=7 eingebe, bekomme ich 7 Zahlen in Zeile A bis G, was toll ist!
Funktioniert auch super...aber der hat auch doppelte Zahlen in den Zellen....das ist mein Problem im Code.

Die Zusatzzahl von 1 bis 10 könnte man löschen im Code....sinnlos, weil wenn ich 45 Kugeln habe, bekomme 6 Zahlen und ermittle mir die Zusatzzahl von 1 bis 10 ist es Schwachsinn, weil wenn ich schon 6 Zahlen habe die nicht gleich sind und ermittle mir noch eine Zusatzzahl von 1 bis 10 ergibt es ja keinen Sinn.
Ich brauche die i=7 und der soll mir den RUN durchführen und überprüfen, damit keine doppelt ist.
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 12:11:25
Sigi.21
Hallo,

ich hab' doch nur eine Frage gestellt. Warum so zornig?
Ich habe den ganzen Code neu geschrieben - in meinem Stil - da finde ich mich besser zu Recht. (s. Mappe)
https://www.herber.de/bbs/user/178138.xlsm

Gruß Sigi
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 12:23:21
mckater
warum soll ich zornig sein.....
Ich habe den Code der mir die Zeilen(Zellen) auffüllt bis ans Ende von Excel...also 7 Zahlen, wo keine doppelt vorkommt
Einzelne Lottotipps sind für mich nicht wichtig.
Das ich den Logarithmus von Excel nicht beeinfluss kann ist mir klar, wie in Java, schon, aber dazu muss man einen ganz besonderen Code schreiben.

Wichtig war mir, mach mir 7 Zahlen die nicht gleich von 1 bis 45, fülle diese dann auf mit J und das klappt super nun mit dem Code.

Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 11:46:43
peter
Hallo



For j = 1 To 10

' Ermittle die letzte belegte Zeile in Spalte A (oder einer anderen Spalte)
letzteZeile = Cells(Rows.Count, "A").End(xlUp).Row + 1

' Generiere die Hauptzahlen (6 aus 45)
For i = 1 To 7
Do While True
zahl = WorksheetFunction.RandBetween(1, 45)
If IsNumeric(Application.Match(zahl, Range(Cells(letzteZeile, 1), Cells(letzteZeile, i)), 0)) = False Then 'Überprüfen, ob die Zahl schon generiert wurde
Cells(letzteZeile, i).Value = zahl
Exit Do
End If
Loop
Next i
Next j




Peter
Anzeige
AW: Lottozahlengenerator Österreich mit Zusatzzahl
23.07.2025 12:14:22
mckater
Das schaut ganz so aus wie wenn das Problem gelöst ist mit dem Code!
7 Zahlen schön sauber ausgewertet, mal schauen ob keine doppelt vorkommt und das war ja mein Problem.

Denke das Problem ist gelöst und der Code war und ist super!
Genau so habe ich mir das vorgestellt.
Weil im Lotto werden 6 Zahlen gezogen....als sind von den 45 Kugeln nur noch 39 übrig und die 7 Zahl ergibt die Zusatzzahl!
Also haben wir 45 Zahlen wo 7 weg sind. Der Rest ist noch in der Kugel oder wo auch immer.

die i wie die j machen halt die Aufgabe perfekt
Jetzt geht es runter bis auf die max. Zeilen, die an Excel verfügbar sind*gg*

Danke an den CODER! PERFKET
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18