Sub MajTabClassement()
'à partir de la liste des Inscrits
'recréer le tableau TabClassement
'y fait figurer tous les objets
' met une formule pour compter les points de chaque objet (ces points sont comptabilisés à partir du TabVotes
Application.EnableEvents = False
Application.Goto Reference:="TabClassement"
'efface le tableau
Selection.ClearContents
'redimensionne le tableau avec une seule ligne
ActiveSheet.ListObjects("TabClassement").Resize Range("$A$1:$D$2")
i = 1
'on parcourt toutes les lignes (tous les inscrits) du tableau
For Each Inscrit In Range("TabInscrits").Resize(, 1)
'on parcourt tous les objets de la colonne H (8) à la colonne S
For NumObjet = 8 To 8 + 12
'si il y a un objet à recopier
If Sheets("Liste des Inscrits").Cells(Inscrit.Row, NumObjet) <> "" Then
Sheets("Classement Votes Photos").Range("TabClassement").Item(i, 1) = Inscrit
Sheets("Classement Votes Photos").Range("TabClassement").Item(i, 3) = Sheets("Liste des Inscrits").Cells(Inscrit.Row, NumObjet)
Sheets("Classement Votes Photos").Range("TabClassement").Item(i, 2) = Sheets("Liste des Inscrits").Cells(Inscrit.Row, 4) + Int((NumObjet - 7 - 1) / 3)
i = i + 1
End If
Next NumObjet
Next Inscrit
'à ce stade, tous les objets sont reportés avec le nom de l'exposant et le numéro de panneau sur lequel ils figurent
'on se place sur la colonne 4 de la première ligne
Range("TabClassement").Item(1, 4).Select
'et on applique la formule: cette formule sera recopiée automatiquement sur toute la colonne de la table.
ActiveCell.FormulaR1C1 = _
"=IF(ISNUMBER(RC[-1]),SUMIF(TabVotes[N° des Photos],RC[-1],TabVotes[Nb de Points]),"""")"
'Cette ligne "force" la recopie de la formule..
Range("TabClassement[Total des Points obtenus]").FillDown
Application.EnableEvents = True
End Sub