Création de macros pour effectuer une gestion de pilotes

Bonjour à tous,

Je suis en train de mettre au point une feuille excel pour permettre de gérer plus facilement et rapidement les courses d'auto cross d'un club.

Pour bien expliquer mon problème, j'ai donc plusieurs feuilles dans mon classeur excel :

La première qui contient les tableaux regroupant par catégorie tous les noms des pilotes. A cela, j'ai rajouter un colonne avez un nombre aléatoire permettant de faire un tirage au sort de l'ordre de départ des pilotes. Et pour finir une colonne ou l'on met si le pilote est présent ou non le jour de la course. Sur cette feuille, j'ai une macro qui permet de trier les tableau à la fois en mettant en haut seulement les pilotes présents et dans un ordre aléatoire.

La seconde feuille est aussi là où je ne vois pas vraiment comment faire. Sur cette feuille, il faut générer des fiches de courses, qui servent à noter les ordres d'arrivé des coureurs. Mais le problème, c'est qu'il faut équilibré les fiches, il ne faut pas une série à 9 pilotes et une à 3. Ces fiches peuvent comporter maximum 9 pilotes.

Maintenant le problème exposé, ma question est de savoir comment produire une macro permettant de générer le bon nombre de fiches et de les équilibré suivant le nombre de pilotes présent le matin de la course. Par exemple qi j'ai 21 pilotes dans une série, je voudrais que le logiciel me sorte 3 fiches de 7 pilotes chacune et non 2 fiches de 9 pilotes et une de 3.

Si quelqu'un peut m'aider pour cela ce serait avec plaisir.

Merci par avance

thecannibalcorpse

Bonjour,

Une fonction pour obtenir le nombre de courses selon le nombre de pilotes :

Function NbCourses&(nb_Pil&)
    NbCourses = Int((nb_Pil - 1) / 9) + 1
End Function

Une fonction pour obtenir le nombre de pilotes par course selon le nombre de pilotes total et le n° de la course :

Function Pil_Crs&(ByVal nb_Pil&, no_Crs&)
    Dim i&, c&
    If no_Crs > NbCourses(nb_Pil) Then
        Pil_Crs& = 0
        Exit Function
    End If
    c = 1
    Do
        Pil_Crs = Int(nb_Pil / NbCourses&(nb_Pil))
        nb_Pil = nb_Pil - Pil_Crs
        c = c + 1
    Loop Until c > no_Crs
End Function

Les dernières courses sont celles avec le plus de pilotes.

Exemple 37 pilotes :

NbCourses(37) donne 5

Pil_Crs(37, 1) donne 7

Pil_Crs(37, 2) donne 7

Pil_Crs(37, 3) donne 7

Pil_Crs(37, 4) donne 8

Pil_Crs(37, 5) donne 8

Pil_Crs(37, 6) donne 0

Cordialement

Jules

Merci pour ces fonctions.

C'est vrai que j'ai un peu de mal avec les fonctions dans excel parce que je ne connais pas la syntaxe, je ne code plus qu'en PHP et avant je codais en JAVA, mais ça ne se ressemble pas vraiment.

Merci pour ces fonctions, elles fonctionnent parfaitement dans mon cas.

J'aurais toutefois besoin d'aide pour quelques autre fonction :

- Une fonction permettant d'afficher un ou plusieurs tableau dans une autre feuille en fonction du nombre retourné par Nbcourses ci-dessus.

- Une fonction de recopie des noms des pilotes cochés présent dans les tableaux qui seront créé par la fonction si dessus.

Donc si vous avez des pistes à me donner pour faire ces fonctions, je vous en serait reconnaissant.

Rechercher des sujets similaires à "creation macros effectuer gestion pilotes"