Générateur Tournoi Ecole de Rugby

Bonjour à tous,

J'ai commencé à mettre le nez dans les macros excel depuis quelques temps.
Pas facile !
Mais je m'inspire beaucoup des aides prodiguées sur le site !

Là, je suis face à un petit problème cornélien (en tout cas pour moi).

Je suis en train de créer un fichier qui génère des plateaux de rugby pour l'Ecole de Rugby.

Dans DATA, j'ai la liste des équipes engagées par Club et par catégorie.
Ensuite, je génère les feuilles vierges de poule suivant le nombre d'équipes.

Le problème arrive…
Je voudrais peupler les feuilles de poule depuis l'onglet DATA.
Mais avec quelques contraintes :

  • Pas de doublon dans une poule,
  • Nombre d'équipe/poule dépend du nombre engagé,
  • Max 8 équipe/poule, au delà, création nouvelle poule,
  • Répartition équilibrée du nombre d'équipe dans les poules d'une même catégorie,
  • Eviter que 2 équipes d'un même club se rencontrent (sur la base du nom de l'équipe ?) - pas toujours possible bien sûr !.

Si besoin, le tableau en DATA peut être modifié.

J'ai créé un bouton Générer Poule M8 avec une macro. Résultat en K15 à T15.
L'idée est de copier ces valeurs dans les onglets de poule.
Mais je tombe sur une boucle sans fin…
En pas à pas, je ne comprends pas pourquoi.
Si j'interromps, j'ai bien une liste de 5 noms (ou 6 ou… suivant valeur en B34).

J'ai essayé avec une formule. J'ai une génération mais je n'arrive pas à sortir 6 noms, ni éviter les doublons. Résultat en K22 à Z22

Du coup, je sèche !

Si une bonne âme pouvait m'aider ou m'expliquer l'origine du problème...
Une fois OK, je ferai les boutons pour M10 et M12.

Je tiens à préciser que je ne passe pas une "commande".
Je suis bénévole dans un club. Ce fichier est destiné à faciliter l'organisation des plateaux pour l'école de rugby.

Je vous remercie par avance de l'aide que vous pourrez m'apporter.

Magis.

Pièces jointes

Bonjour à tous !

La demande, en contravention de la charte, est multi-postée....

Bonjour Magis,

Premièrement je ne comprends pas tres ben ta macro "Générer_Poule_M7" qui me semble -t-il est affectée au bouton "Générer Poule M8"

Sub Générer_Poule_M7()
Randomize
    nb_colonne = Range("B15").End(xlDown).Row - 1   
        For colonne = 2 To Range("B15").End(xlDown).Row
            alea = Int(Rnd * nb_colonne) + 2
            Range(colonne & "15") = Range(alea & "15")
            nb_lcolonne = nb_colonne - 1
        Next
End Sub

De plus il y a des incorrections en ce qui concerne l'appel des cellules , tu dois transformer

Range(colonne & "15") = Range(alea & "15")

en

Cells(15, colonne) = Cells(15, alea,)

si, bien sur, colonne et alea représentent un numéro d'une colonne, sinon, s'il s'agit de numéro de lignes tu dois écrire

Cells(colonne, 15) = Cells(alea, 15)

mais que désires tu obtenir exactement quand tu utilises cette macro ? Je ne comprends pas très bien ton but

A+

Bonjour JFL,

Je ne m'en suis pas rendu compte
Que faire ?

Bonjour à tous de nouveau !

@Jacky : Hello !

Que faire ?

Chacun est Roi en sa demeure....

Pour ma part j'ai tendance à privilégier, a minima, le respect des règles qui permettent de faire vivre le commun.

@JFL,

Je partage tes propos, mais pour cette fois, ayant entrepris un début d'aide je poursuivrais, toutefois en faisant part qu'il n'est pas très correct ni sympa de surfer sur deux Forum en même temps afin d'obtenir une réponse à sa question.
J'ai jeté un coup d'oeil sur l'autre Forum et ai remarqué que des échanges avaient déjà eu lieu, alors pourquoi essayer de glaner ailleurs ?

Au plaisir sur notre Forum

Jacky

Bonjour et merci pour vos réponses.

Je n'ai pas cherché à enfreindre la charte et je m'en excuse.
Comme indiqué, ce fichier est pour une école de rugby (pour des gamins) --> bénévolat.
Je me suis adressé aux 2 forums sur lesquels beaucoup de tips sont dispensés.

A noter que je n'ai pas reçu beaucoup d'aide pour le moment sur l'autre forum.

Maintenant, si vous le souhaitez, je peux supprimer (ou clôturer le post).

Encore une fois, toutes mes excuses.

Magis.

Bonsoiir Magis,

Non, comme je l'ai dit précédemment j'ai commencé à étudier ce problème donc je m'engage à poursuivre mon aide en fonction de mes moyens d'une part et des explications fournies d'autre part.
Voir mon message précédent

A+

J'attends votre confirmation afin d'avancer davantage avec Jacky et apporter mes explications/attentes.

Opps !
Je te remercie.

Il y avait une "coquille" entre M7 et M8, en effet (mon doigt a fourché).

Au départ, en préparation du tournoi, le fichier n'a que 2 onglets (Modèle_Poule et Data).

Je remplis le nom des équipes par catégorie.
Je clique sur Créer Feuille (pas catégorie) pour générer mes onglets.
Suivant le nombre d'équipes, je vais créer 1 ou 2 poule par catégorie d'âge.

J'ai essayé sur l'onglet DATA avec les M8.
--> Je clique sur le bouton Liste Poule en colonne I. J'arrive à générer une liste, mais pas si 2 poules.

Ce que je cherche à faire :
Générer 1 ou 2 (suivant nb poules par âge) listes aléatoires pour remplir les feuilles de poules.
Idéalement, éviter que les équipes d'un même club soit ensemble.

A la fin, l'objectif, c'est de générer les listes directement dans les feuilles de poule.

Ensuite, je générerai les rencontres EqX vs EqY.

J'espère être clair.

Encore merci,

Magis

Je clique sur le bouton Liste Poule en colonne I. J'arrive à générer une liste, mais pas si 2 poules.

Pas de problème, la macro associée à "Liste Poules" fonctionne bien et te dresse la liste des noms de l'ensemble des feuilles existantes à partir de la troisème, dans la colonne "I" à partir de la ligne 15, comme tu l'as demandé dans cette macro.
Mais je be comprends pas pourquoi tu dis que ça ne marche pas si il y a 2 poules
Donnes moi un exemple SVP

Oui, liste poule fonctionne très bien.

Mais je voudrais lister x équipes de façon aléatoire à partir de la colonne k pour peupler les poules.
Cela fonctionne plus ou moins... Mais plutôt moins !

Pour le moment j'ai vérifié les macros "Créer feuille" et "Effacer"
La macro "Créer feuille" peut être généralisée, inutile d'en faire une pour M8, une autre pour M10 et une dernière pour M12. On verra cela après
Dans le cas où la feuille que tu veux créer existe déjà, tu tombes sur une erreur qui t'affiche un message te disant que la feuille existe déjà, mais ne te permet pas de poursuivre, une gestion d'erreur sera à prévoir
Je vais regarder la suite

Une question toute bête : qu'est ce que "M8" ou "M10" ou "M12", peut-on leur attribuer un nom spécifique tel que Management ou autre
Enfin, je préfère travailler avec des boutons codifiable plutot que des macros, ça n'engage que moi, donc si tu n'y voit pas de soucis .....

A+ (peut être demain étant donnée l'heure)

M8 signifie "Moins de 8 ans".

Oui, je n'ai pas encore regardé les gestions d'erreurs (type doublon de feuille...).

Pour les boutons codifiables, pas de soucis.
En fait, jusqu'à présent, je fais toujours des boutons avec macro associée.
Je vais regarder la différence

Bonne soirée et A demain !

Bonjour Magis,

En ce qui concerne la macro "Créer feuille" on verra à l'améliorer à la fin de nos échanges

Je me suis donc replongé dans ton fichier
Si j'ai bien compris, dans la feuille "Data", en ligne 22, de la colonne K à la colonne Z, tu désires réinscrire, de façon aléatoire, les éléments contenus dans les cellules "B15" à "B30". A ce sujet j'ai vu que tu utilises une fonction qui marche très bien

=CHOISIR(ALEA.ENTRE.BORNES(1;NBVAL(Liste_M8[Colonne1]));$B15;$B16;$B17;$B18;$B19;$B20;$B21;$B22;$B23;$B24;$B25;$B26;$B27;$B28;$B29;$B30)

par contre, ta macro "Générer Poule M8", qu'il faudra appliquer aux autres ppules d'ailleurs, je ne la comprends pas

Randomize
nb_colonne = Range("B15").End(xlDown).Row - 1   
    For colonne = 2 To Range("B15").End(xlDown).Row   
            alea = Int(Rnd * nb_colonne) + 2
            Cells(colonne, 15) = Cells(alea, 15)
            nb_lcolonne = nb_colonne - 1
      Next

1) il me semble que fais une confusion entre ligne et colonne : nb_colonne est un nombre qui représente l'avant dernière ligne précédant la première ligne vide de ton tableau des 16 équipes, pourquoi avant dernière et pas derniière, d'autant plus qu'après tu fais référence à la dernière
2) ta boucle "For colonne ...... Next" tourne de 2 à nb_colonne + 1 (soit 25 je crois dans ta situation), colonne est donc un nombre, c'est pourquoi

Range(colonne & "15") = Range(alea & "15")

engendre des erreurs, en effet Range(2, 15) est incorrect, il faut écrire Range("B15") ou utiliser Cells(2, 15) dans le cas ou la variable colonne représente un numéro de ligne, ou Cells(15, 2) dans le cas où colonne représente un numéro de colonne
Comme il me semble que tu veux réécrire les valeurs des cellules "B15" à "B30" cette fois ci dans les cellules "K" à "T" toujours de façon aléatoire, il faudra que tu transforme la ligne de code précédente en

Cells(15, rg) = Cells(alea, 2)

Mais enfin si ce que j'ai compris est ce ce que tu désires, pour retrouver les éléments de "B15" à "B30" il faudra commencer ta boucle à nb_colonne = 15 ( et de plus j'appellerais cette variable numero_ligne et non pas nb_colonne) et revoir la construction de la variable alea pour qu'elle reste comprise entre 15 et 30

De plus pourquoi cette ligne

            nb_lcolonne = nb_colonne - 1

à quoi sert nb_1colonne ?

Si tout ce que je t'ai dit en ce qui concerne le travail que doit faire cette macro te convient, il faudra l'appliquer aussi, me semble-t-il aux autres lignes 15 à 19, c'est à dire pour chaque Poule, on verra cela plus tard.

J'attends ta réponse pour poursuivre

Une dernière question : que signifie les valeurs en "B15" à "B30" soit AA1, AA2, BB, etc .... ?

bonjour Magis, Jacky,

j'ai ajouté une macro "test" avec une fonction personalisée qui fait ce tirage aléatoire maintenant. Mais il le fait maintenant pou les 3 en même temps .

Bonjour Bart,

Heureux de te retrouver et je vais regarder de plus prêt ce que tu proposes

Magis,
Je t'envoie un fichier qui devrait répondre à tes questions si ce n'est que je n'ai pas encore étudié le cas des doublons

40rugbymoi.xlsm (92.35 Ko)

@Jacky, je pense que j'ai une autre interpretation , à voir ...

Bonsoir Bart,

Je reviens sur ta proposition précédente avec la macro "test"
Tu utilises un tableau, et oui, mais moi je ne suis pas très à l'aise avec les tableaux, je ne les utilise que depuis nos longs échanges précédents à ce sujet
Maintenant il y a un petit problème dans ta proposition car pour M10 et M12, le tableau que tu as construit ne convient pas, les équiipes sont toujours à prendre dans B15 à B30 alors que les nombres de poules sont dans des cellules différentes.
Bonne soirée Bart
A+

Bonsoir à tous !

Je vous remercie pour votre aide.
Je n'ai hélas pas pu me connecter aujourd'hui. Pas prévu.

Je vais regarder et reprendre le fil du jour.
Je reviens vers vous demain soir.

Rechercher des sujets similaires à "generateur tournoi ecole rugby"