[déplacé VB6 -> VBA] Classement des coureurs lors d'une course de moto
vbajp
Messages postés2Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention15 avril 2010
-
12 avril 2010 à 22:01
vbajp
Messages postés2Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention15 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.
A voir également:
[déplacé VB6 -> VBA] Classement des coureurs lors d'une course de moto
cs_Yonnel69
Messages postés1Date d'inscriptionlundi 9 avril 2007StatutMembreDernière intervention13 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
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
vbajp
Messages postés2Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention15 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.