[déplacé VB6 -> VBA] Classement des coureurs lors d'une course de moto

vbajp Messages postés 2 Date d'inscription mardi 5 décembre 2000 Statut Membre Dernière intervention 15 avril 2010 - 12 avril 2010 à 22:01
vbajp Messages postés 2 Date d'inscription mardi 5 décembre 2000 Statut Membre Dernière intervention 15 avril 2010 - 15 avril 2010 à 14:52
Bonsoir à tous.
Je cherche à créer une macro pouvant faire un classement des coureurs d'une course sur plusieurs manches.
Je m'explique:
1 tableau par mois.
Colonne 1= Noms de coureurs
Colonne 2= points de la première manche(à renseigner)
Colonne 3= points de la deuxième manche (à renseigner)
Colonne 4= total des points des deux manches (calcul automatique)
Colonne 5= classement des coureurs fonction du total des points du mois
Colonne 6= total des points au fur et à mesure des mois(mois 1+mois 2 + mois 3 ....)
Colonne 7= classement des coureurs fonction des totaux des mois 1 +2+3....

Pouvez vous m'aider svp.
D'avance merci.

2 réponses

cs_Yonnel69 Messages postés 1 Date d'inscription lundi 9 avril 2007 Statut Membre Dernière intervention 13 avril 2010
13 avril 2010 à 15:00
Salut,

Voici la demarche que je te suggere:
1. Créé ta premiere table pour janvier et rentre le nom de tes coureurs (appelle la "Resultats_01")

2. Copie la manuellement 11x pour avoir tous les mois ("Resultats_xx")

3. Créé ta macro:
a. Debrouilles toi pour avoir le nom de la table du dernier mois dans la variable "TableM1" et celle du mois précédent dans la variable "TableM0"

b. Exceute une requete qui te met à jour ta colonne 4
Docmd.runsql "UPDATE " & TableM1 & " SET colonne4=[colonne2]+[colonne3]"


c. Pour faire le classement, tu peux ouvrir un recordset trié et le remplir ligne par ligne (attention a la gestion des égalités)
dim i as integer
dim rst as dao.recordset
set rst=currentdb.openrecorset("SELECT * FROM " & TableM1 & " ORDER BY colonne4 DESC")
rst.movefirst
i=0
while not rst.eof
   i=i+1
   rst.edit
   rst.fields("colonne5")=i
   rst.update
   rst.movenext
next
rst.close
set rst=nothing


d. Fais le total des points avec le mois d'avant en faisant
Docmd.runsql "UPDATE " & TableM1 & " INNER JOIN " & Table0 & " ON " & Table1 & ".colonne1 " & Table0 & ".colonne1 SET " & Table1 & ".colonne6 " & Table0 & ".colonne6 + " & Table1 & ".colonne4"


e. Fais le classement général en faisant comme pour le point c.

J'espere que je n'ai pas fais d'erreurs en tappant ce code à la volée!
Voila, c'est juste sur le fond du code. Apres je te laisse changer les noms des colonnes est regler les problèmes potentiels liés aux execo et au premier mois.

Si besoin je peux toujours donner un autre coup de pouce

__________
Yonnel

http://www.gylsolutions.fr - Conseil en informatique - VBA Access
0
vbajp Messages postés 2 Date d'inscription mardi 5 décembre 2000 Statut Membre Dernière intervention 15 avril 2010
15 avril 2010 à 14:52
Salut YONNEL69.

Je suis sous excel. Peux tu m'éclairer sur le point 3 a.
Je débute et je ne sais pas si tu parles des tables sous acces ou sous excel.
Merci pour ton aide.
0
Rejoignez-nous