Skapa ett spelsystem
I detta tips demonstreras hur vi kan skapa ett spelsystem för t ex en turnering.
Detta kan komma till nytta i många sammanhang, inte minst inom idrottsrörelsen.
Vill du få reda på hur vi:
Följande förutsättningar gäller för exemplet:
- Lagnamnen anges i såväl kolumn A som i kolumn B.
- Kolumn A och B har namngivits till "Lag".
- Kolumn C och D har namngivits till "Spel".
- Lagen möts såväl i hemma- som bortamatcher, dvs varje lag möts 2 gånger. Med 6 lag blir det 18 matcher totalt (3^2*2).
- Lagen i kolumn A möter lagen i kolumn B och inte inbördes. Är inbördes möten önskvärt kan vi kopiera över respektive lag till den andra kolumnen. Resultatmässigt innebär att vi måste ta bort de matcher där Team A möter Team A.
Tabellen nedan visar lagen i exemplet:
Här visas den procedur som skapar spelsystemet:
Option Explicit
Sub Skapa_Spelsystem()
'© 2002 Alla rättigheter XL-Dennis
Dim rnLag As Range, rnSpel As Range
Dim lnA As Long, lnB As Long, lnRad As Long
Dim x As Long, y As Long
lnA = Range("A65500").End(xlUp).Row
lnB = Range("B65500").End(xlUp).Row
Set rnLag = Range("Lag")
Set rnSpel = Range("Spel")
lnRad = 1
For x = 1 To lnA
For y = 1 To lnB
rnSpel.Cells(lnRad, 1) = rnLag.Cells(x, 1)
rnSpel.Cells(lnRad, 2) = rnLag.Cells(y, 2)
lnRad = lnRad + 1
Next y
Next x
For x = 1 To lnA
For y = 1 To lnB
rnSpel.Cells(lnRad, 1) = rnLag.Cells(x, 2)
rnSpel.Cells(lnRad, 2) = rnLag.Cells(y, 1)
lnRad = lnRad + 1
Next y
Next x
End Sub
När denna procedur har körts skapas följande tabelluppställning: