Im Bereich A2:A31 trägst Du Deine 30 Zahlen ein.
Im nächsten Schritt erstellst Du eine Tabelle mit fünf Spalten für die Tipps und sechs Zeilen für jede Zahl in einem Tipp. In die erste Zelle trägst Du ein:
=INDEX($A$2:$A$31;ZUFALLSBEREICH(1;30))
Das holt Dir eine zufällige Zahl aus dem Zahlenvorrat. Übertrage diese Funktion auf alle 30 Zellen. Du kannst mit F9 testen, wie es mit jeder Neuberechnung neue Zahlenkombinationen erstellt.
Nun musst Du die Fälle wiederholen, in denen in einem Tipp Zahlen mehrfach vorkommen. Hierzu wertest Du die sechs Zahlen eines Tipps wie folgt aus (Beispiel für Zelle D8):
=WENN(ODER(D2=D3;D2=D4;D2=D5;D2=D6;D2=D7;D3=D4;D3=D5;D3=D6;D3=D7;D4=D5;D4=D6;D4=D7;D5=D6;D5=D7;D6=D7);"dup";"")
Hierbei sind die Zellen D2:H7 die generierten Zahlen. Sollten Doppelungen in einer Spalte auftreten, wird in der Zelle (D8) "dup" angezeigt. Übertrage die Formel auf die benachbarten Zellen (E8:H8). Auch jetzt kannst Du mit wiederholtem F9 testen, bis alle sechs Tipps Wiederholungsfrei sind. In I8 kannst Du das auch anzeigen lassen:
=WENN(ODER(D8="dup";E8="dup";F8="dup";G8="dup";H8="dup");"ungültig";"Deine Tipps")
Du siehst ein "ungültig", wenn auch nur einer der Tipps Doppelungen enthält. Erst wenn alle fünf Tipps doppelungsfrei sind, wird "Deine Tipps" gemeldet.
Jetzt müsstest Du so lange F9 wiederholen, bis das der Fall ist. Anschließend D2:H7 kopieren und an anderer Stelle die
Werte einfügen. Schließlich noch jede Spalte eines Tipps sortieren. Für diese Schritte habe ich ein Makro aufgezeichnet und angepasst:
Sub Autpen()
' Anstelle des blöden Smiley sollte Auto*Open, wobei das Sternchen durch einen Underscore ersetzt gehört
Do Until Range("I8").Value = "Deine Tipps"
Calculate
Loop
Range("D2:H7").Select
Selection.Copy
Range("D10").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("D1015").Select
' Hier steht DoppelpunktD anstelle des Smiley, weiter unten nochmals
Application.CutCopyMode = False
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("D10"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("D1015")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E10:E15").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("E10"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("E10:E15")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("F10:F15").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("F10"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("F10:F15")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("G10:G15").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("G10"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("G10:G15")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("H10:H15").Select
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").Sort.SortFields.Add Key:=Range("H10"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Tabelle1").Sort
.SetRange Range("H10:H15")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("D10:H15").Select
End Sub
Nicht vergessen, jetzt muss das Ganze als.xlsm abgespeichert werden. Jedes Mal, wenn Du die Arbeitsmappe öffnest, werden Dir sofort Deine neuen Zahlen generiert und schön ordentlich in D10:H15 angezeigt.
Ach und falls Du damit was gewinnst....
O.