1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub Macro1()
Dim j As Byte, i As Byte, n As Byte
Dim m As Integer
Const NbJ As Byte = 80 'Nombre de joueurs
Application.ScreenUpdating = False
With Worksheets("Feuil1")
'On efface la colonne G Point par Barèmes
.Range("G4:G" & NbJ + 3).ClearContents
'Pour chaqu colonne de K à Y (Analogiquement Partie j)
For j = 11 To 25
'Pour chaque ligne de 4 à 83 (Analogiquement concurrent i): 80 joueurs
For i = 4 To NbJ + 3
'Si le nombre de points du concurrent i pendant la partie j est renseigné
If .Cells(i, j) <> "" Then
'n Correspond au Rang du participant i dans la partie j
n = Evaluate("RANK(" & .Cells(i, j).Address & "," & .Range(.Cells(4, j), .Cells(NbJ + 3, j)).Address & ")")
'm est le nombre de points selon le barème du participant i pendant la partie j
m = IIf(n <= 3, 140 - 10 * n, IIf(n <= 24, 125 - 5 * n, 0))
'en ajoute dans la cellule G, le nombre de points selon le barème du concurrent i
.Cells(i, 7).Value = Val(.Cells(i, 7).Value) + m
End If
Next i
Next j
'On tri sur le points barèmes puis sur le total des points gagnés dans les parties
.Range("F4:Y" & NbJ + 3).Sort Key1:=.Range("G4"), Order1:=xlDescending, Key2:=.Range("I4"), Order2:=xlDescending, Header:=xlNo
End With
End Sub |
Partager