Résultats, classements et calendrier
Créer un suivi de résultats, de classement et de calendrier pour la Ligue 1 dans un tableur paraît simple au premier abord. Mais dès qu'on cherche à automatiser le tout, les choses se compliquent vite. C'est exactement ce qu'a découvert Bounty, un utilisateur qui a publié un fichier calendrier L1 2023-2024 de 17,0 Ko, contenant initialement un seul jour de match, pour solliciter de l'aide sur la génération automatique d'un classement général.
Automatiser le classement à partir des résultats de matchs
La vraie difficulté ne réside pas dans la saisie des bilans, mais dans leur exploitation. Cow18, un autre utilisateur de la discussion, a proposé une première approche basée sur des formules classiques, avant de reconnaître que les règlements de la Ligue 1 imposent des critères d'égalité suffisamment complexes pour nécessiter l'utilisation de macros VBA. Résultat : une première ébauche de 35,8 Ko a été produite sous forme de fichier .xlsm, traitant uniquement le premier critère d'égalité, les points 2 à 8 restant à implémenter.
Pour comprendre pourquoi les formules seules ne suffisent pas, il faut saisir la logique du classement sportif. Deux équipes peuvent finir à 9 points avec des parcours totalement différents. Prenons l'exemple illustré par l'utilisateur taz067 dans la discussion :
| Équipe | Points | Victoires | Nuls | Défaites | Buts marqués |
|---|---|---|---|---|---|
| Équipe A | 9 | 2 | 3 | 0 | 10 |
| Équipe B | 9 | 3 | 0 | 3 | 11 |
Dans ce cas précis, l'Équipe B passe devant grâce à ses 11 buts marqués contre 10 pour l'Équipe A. Ce n'est pas le nombre de victoires qui prime ici, mais le total de buts inscrits après un nombre donné de journées. Taz067 a été très clair là-dessus : la différence de buts s'applique au cumul sur l'ensemble des matchs disputés, pas uniquement aux confrontations directes.
C'est précisément ce genre de subtilité qui rend un classement automatisé délicat à construire sans VBA. Pour moi, vouloir s'en tenir aux seules formules sur ce type de projet, c'est se condamner à des bugs silencieux qui fausseront le classement sans prévenir.
Structurer les données du calendrier pour un traitement unifié
Avant même d'attaquer la logique de classement, Bounty a rencontré des problèmes dans la structure même de ses données. Cow18 a relevé plusieurs anomalies dès l'analyse du fichier de 20,5 Ko contenant les premiers résultats ajoutés : présence de doublons sur les noms de clubs (notamment Clermont Foot et Clermont Foot 63 coexistant comme deux entités distinctes), ainsi que des équipes comme Rennais et Nice n'atteignant pas les 5 matchs attendus par équipe.
Ces incohérences illustrent un problème courant dans la gestion de données sportives : la saisie manuelle génère inévitablement des divergences de nommage. La solution adoptée a été simple et efficace : créer un onglet dédié "équipes" avec une liste de référence des noms officiels, ce qui a permis de normaliser toutes les occurrences.
L'autre problème structurel concernait le format des plages de données. Les matchs aller utilisaient 6 colonnes, tandis que les matchs retour n'en comportaient que 4. Cette asymétrie rendait le traitement par macro impossible sans adaptation. Cow18 a résolu cela en ajoutant 2 colonnes vides aux matchs de retour, harmonisant ainsi les deux plages pour les rendre compatibles. Cette version corrigée, publiée dans un fichier de 47,6 Ko, incluait également une colonne Y dédiée au tri des équipes à égalité de points, où chaque séquence de chiffres représente un critère de qualification distinct.
Un onglet temporaire nommé "blad" avait servi à transformer visuellement les 4 colonnes "retour" en 6 colonnes pour observation. Une fois le mécanisme validé, il a été supprimé. Ce genre de feuille de travail provisoire est une bonne pratique : elle permet de vérifier la logique sans polluer le fichier final.
Générer le classement sans formules visibles : comprendre la logique VBA
Bounty a posé une question très légitime : pourquoi les colonnes G, N et P du classement général se remplissent-elles sans formule apparente ? C'est l'essence même du VBA. Contrairement aux formules classiques qui restent visibles dans les cellules, une macro écrit directement les valeurs calculées dans les cellules cibles sans laisser de trace de formule. Le résultat semble "magique" à qui n'a pas accès au code.
Voici les étapes typiques qu'une telle macro doit enchaîner pour générer un classement fiable :
- Lire l'ensemble des résultats saisis dans les plages aller et retour
- Agréger les points, victoires, nuls, défaites et buts par équipe
- Appliquer les critères d'égalité dans l'ordre réglementaire (buts marqués, puis différence de buts...)
- Trier les équipes selon ces critères combinés
- Inscrire les valeurs finales dans les colonnes du classement
Ce projet illustre parfaitement une réalité des outils de suivi sportif : la partie visible (saisie des résultats, lecture du calendrier) ne représente qu'une fraction du travail. La logique cachée dans les macros conditionne toute la fiabilité du classement affiché. Si vous construisez ce type de fichier, investissez du temps dans les tests d'égalité : ce sont eux qui feront la différence entre un outil crédible et un tableau trompeur.
L'auteur
Rédaction de Le JSD.
Partager cet article