View Single Post
  #2   Report Post  
Old January 2nd 10, 02:47 PM posted to microsoft.public.excel.misc
Per Jessen Per Jessen is offline
external usenet poster
 
First recorded activity by ExcelBanter: Jan 2008
Posts: 1,533
Default Creating a fixture list

Hi

This will give you 90 matches. Each team will play against each other twice
(as host and as guest).

Sub leagueMatch()
Dim i, j As Long
Dim datacolumn As String
Dim resultColumn As String
Dim firstRow, lastRow, currRow As Long

datacolumn = "A"
resultColumn = "C"
firstRow = 1
currRow = 1
lastRow = Range(datacolumn & Rows.Count).End(xlUp).Row

For i = firstRow To lastRow
For j = firstRow To lastRow
If Cells(i, datacolumn) < Cells(j, datacolumn) Then
Range(resultColumn & Format(currRow)) = Range(datacolumn &
Format(i)) & " vs " & Range(datacolumn & Format(j))
currRow = currRow + 1
End If
Next
Next
End Sub

Regards,
Per


"Gilbo" skrev i meddelelsen
...
I have used a macro to gererate fixtures for a league but it doesn't
calculate properly. All teams should play each other once, (ie 10 teams -
90
matches). I have used the following macro. Thanks for your help in
advance.

Sub leagueMatch()
Dim i, j As Long
Dim datacolumn As String
Dim resultColumn As String
Dim firstRow, lastRow, currRow As Long

datacolumn = "A"
resultColumn = "C"
firstRow = 1
currRow = 1
lastRow = Range(datacolumn & Rows.Count).End(xlUp).Row

For i = firstRow To lastRow - 1
For j = i + 1 To lastRow
Range(resultColumn & Format(currRow)) = Range(datacolumn &
Format(i)) & " vs " & Range(datacolumn & Format(j))
currRow = currRow + 1
Next
Next
End Sub