aus 8 Spieler 2 Gruppen machen
20.07.2022 19:30:02
Yal
Hallo zusammen,
nicht mit Power Query, da muss ich vielleicht später wieder drauf kommen.
Aus 8 Spieler ermittle ich zuerst alle mögliche Kombination, spricht wie man diesen in 2 Gruppen je 4 Spieler (Doppel).
Der code sieht so aus:
Sub Spiele()
Dim i, j, k
Dim L1, L2
With Worksheets("Tabelle1")
For i = 0 To 127
L1 = .Cells(2, 1) 'Arno immer im erste Gruppe
L2 = ""
For j = 0 To 6
k = 2 ^ j
If (i And k) = k Then L1 = L1 & ";" & .Cells(j + 3, 1) Else L2 = L2 & ";" & .Cells(j + 3, 1)
Next
If UBound(Split(L1, ";")) = 3 Then Debug.Print L1& ";=" & L2
Next
End With
End Sub
Aus 8 Spieler, die im Tabelle1, Zellen A2:A9 vorliegen ergibt 35 Kombis. Hier die ersten 5:
Arno;Bernd;Christoph;Dietmar;=;Ernst;Franz;Gerald;Hartmut
Arno;Bernd;Christoph;Ernst;=;Dietmar;Franz;Gerald;Hartmut
Arno;Bernd;Dietmar;Ernst;=;Christoph;Franz;Gerald;Hartmut
Arno;Christoph;Dietmar;Ernst;=;Bernd;Franz;Gerald;Hartmut
Arno;Bernd;Christoph;Franz;=;Dietmar;Ernst;Gerald;Hartmut
...
Dann für Jeden 4er die 3 möglichen Spiel bauen. Fertig.
Ach komm, das bekommen wir auch hin. Es sind eh ja feste Kombiantionen:
Sub Spiele()
Dim i, j, k
Dim L1, L2
Dim Arr
With Worksheets("Tabelle1")
For i = 0 To 127
L1 = .Cells(2, 1) 'Arno immer im erste Gruppe
L2 = ""
For j = 0 To 6
k = 2 ^ j
If (i And k) = k Then L1 = L1 & ";" & .Cells(j + 3, 1) Else L2 = L2 & ";" & .Cells(j + 3, 1)
Next
Arr = Split(L1, ";")
If UBound(Arr) = 3 Then
Debug.Print "L1: " & Arr(0) & "-" & Arr(1) & " vs. " & Arr(2) & "-" & Arr(3)
Debug.Print "L1: " & Arr(0) & "-" & Arr(2) & " vs. " & Arr(1) & "-" & Arr(3)
Debug.Print "L1: " & Arr(0) & "-" & Arr(3) & " vs. " & Arr(1) & "-" & Arr(3)
Arr = Split(Mid(L2, 2), ";")
Debug.Print "L2: " & Arr(0) & "-" & Arr(1) & " vs. " & Arr(2) & "-" & Arr(3)
Debug.Print "L2: " & Arr(0) & "-" & Arr(2) & " vs. " & Arr(1) & "-" & Arr(3)
Debug.Print "L2: " & Arr(0) & "-" & Arr(3) & " vs. " & Arr(1) & "-" & Arr(3)
End If
Next
End With
End Sub
Ausgabe erfolgt im Direktfenster (Ansicht, Direktfenster oder Strg+g)
VG
Yal