Tirage au sort de doublettes aléatoires

Bonjour,
j'ai un travail à faire : dans une colonne j'ai une liste de noms et dans la colonne à côté il faudrait un tirage au sort aléatoire de doublettes.
de 1 à 20. (soit pour 40 noms inscrits)
c'est pour mon club et pour organiser des matchs de tennis au hasard.
je ne vois pas comment je peus faire avec excel.
merci

18 réponses

Résumé de la discussion

Un utilisateur cherche comment réaliser un tirage au sort de doublettes dans Excel pour 40 noms afin d'organiser des matchs de tennis de manière aléatoire. Plusieurs répondants suggèrent une macro VBA, dont un exemple 'Sub sélection()' qui génère des tirages et écrit les paires sur une autre feuille, avec des ajustements possibles pour 5 à 6 joueurs. D'autres réponses proposent des liens externes ou des variantes comme des menus déroulants pour choisir le nombre de terrains et répartir les matches de façon aléatoire. En parallèle, des améliorations évoquées incluent l'affectation aléatoire d'un numéro de terrain et l'utilisation des présences via préinscriptions pour limiter le tirage aux joueurs présents.

Bobot (l’IA à votre service)
  1. Sub sélection()

    Dim choix, nbr_elm, nbr_sel, lig

    nbr_sel = 40 ' le nombre de lignes à réviser
    ' le vocabulaire est en A1 sur la "feuil1" et sur 10 colonnes
    ' le choix est en A1 sur la "feuil2"

    nbr_elm = Worksheets("feuil1").Range("a1").End(xlDown).Rows

    For lig = 0 To nbr_sel

    choix = Int(Rnd(1) * nbr_elm):

    Worksheets("feuil2").Range("a1").Offset(lig).Formula = "=Feuil1!R[" & choix & "]C"
    Worksheets("feuil2").Range("a1").Offset(lig).Resize(1, 10).FillRight

    Next lig
    End Sub
    3
    1. Contributeur
      Bonjour

      peut-être plus simple
      http://www.cijoint.fr/cjlink.php?file=cj201012/cijGFVppNK.xls
      1
      1. Contributeur
        Bonsoir,

        une autre proposition, par macro aussi
        Classeur2.xls

        eric
        0
        1. ça s'est super !
          mais comment je fais comment si j'ai un nombre impair de joueurs inscrits?
          je ne peux pas en tuer un.
          on pourrait pas avoir ce dernier inscrit qui jouerait contre un autre au hasard ?
          merci
          0
          1. Contributeur
            Non, car tous les autres sont déjà appariés.
            Ou bien il est retenu d'office pour le tour suivant, ou tu t'ajoutes à la liste des joueurs.
            0
        2. OK , bon tant pis.
          Mais j'ai un autre problème ! en fait on me dit que l'on fera des préinscriptions pour voir un peu ce que cela donne.
          alors je pensais : peut être qu'on pourrait à coté de la liste des engagés, mettre des coches; on marquerait les présents et se serait avec eux seulement que l'on ferait le tirage au sort.
          comme ça on serait sur des doublettes
          par contre je ne sait pas comment faire à partir du fichier qu'on m'a déjà envoyé.
          est-ce que vous pouvez m'aidez encore ?
          merci
          0
          1. Contributeur
            Bonjour,

            Le programme modifié pour les préinscriptions.
            Si joueurs impairs le 1er jouer tiré au sort joue 2 fois.
            Classeur3.xls

            eric
            0
            1. Je suis justement en train de travailler pour mon club (badminton) sur un petit programme sous excel me permettant de faire quasiment la même chose que toi ! (à la différence prêt que je fais des tirages de doubles aléatoires)

              Je peux te transmettre mon fichier quand j'aurai fini si ça t'intéresse (d'ici 1-2 jours j'espère)
              0
              1. pour répondre à eriic, qd j'enlève des coches ça me dit que l'indice ne fait pas partie de la sélection et donc les doublettes ne fonctionnent pas.

                pour répondre à JoePJ, c'est super sympa comme proposition; je ne dis pas non
                plus on est de fous, plus on rit...........enfin on peut se donner des idées. OK ça marche
                merci
                0
                1. Contributeur
                  Je viens de tester, pour moi ça ne le fait que si tu décoches tous les joueurs.
                  Sans joueur inscrit aucun interet de cliquer sur le bouton...
                  Si c'est un autre cas décris-le moi
                  eric
                  0
              2. bon si je décoche toto1 par exemple, j'ai un message comme quoi le tirage au sort précédent est annulé et on repars de 0; je fais OK et là
                " l'indice n'appartient pas à la sélection"
                rien du tout : toto1 est toujours dans les doublettes crées alors qu'il devrait disparaitre.

                ça le fais quand je décoche des joueurs ; pas tous évidemment sinon ça sert plus à rien.
                0
                1. Contributeur
                  Effectivement je pars systématiquement de la ligne 2 et elle doit être impérativement cochée.
                  Je regarderais ce soir
                  eric
                  0
                2. Contributeur
                  L'erreur n'était pas où je pensais mais c'est corrigé, fait un peu trop vite ce matin.
                  Si tu veux tester...
                  Classeur3.xls

                  eric
                  0
              3. OK ça à l'air de bien marcher !
                une p'tite question : quand y'a un nbre impair de joueurs, le tirage au sort désigne aussi au hasard un joueur qui joue 2 fois
                c'est ça ?
                0
                1. Contributeur
                  En fait je choisi le 1er joueur (qui de tout façon a été tiré au hasard) d'une part parce que c'est plus simple, d'autre part si les matches sont joués dans l'ordre ce sera le plus reposé.
                  Tirer au sort parmi ceux qui ont déjà été tiré au sort n'apportera pas plus de hasard, et tu risques d'avoir un joueur du précédent match.
                  Mais si tu préfères c'est faisable, ou si bien tu as une autre idée...
                  eric
                  0
              4. non ça me parait cohérent !
                j'ai une autre idée : est-ce qu'il serait possible, de mettre à côté une colonne qui donnerait de manière aléatoire le numéro du terrain.
                j'explique : au club on peut utiliser 8 terrains et ça pourrait être marrant d'attribuer un terrain de cette manière; je pense
                0
                1. Contributeur
                  j'ai une autre idée : est-ce qu'il serait possible, de mettre à côté une colonne qui donnerait de manière aléatoire le numéro du terrain.
                  Oui pourquoi pas.
                  Mais il faudrait se limiter aux 8 premiers matches, ensuite ça dépendra des libérations de terrains non ?
                  eric
                  0
              5. tout à fait mon cher Thierry...........pardon éric.
                tu peux me faire ça ?
                A+
                0
                1. Contributeur
                  voilà : Classeur3.xls
                  eric
                  0
              6. OK ça roule
                merci pour le coup de main
                et bon week end
                pocker
                0
                1. non ce n'est pas fini !
                  je voudrais en savoir plus pour plus tard !
                  si je veux un tirage aléatoire de 5 ou 6 joueurs/terrain aléatoire aussi(pour le 1er tour), comment je dois modifier ton code ?
                  j'ai essayer mais je coince
                  encore un petit coup de main, je cale
                  merci éric
                  0
                  1. évidemment un joueur ne peut être que dans un groupe à la fois.
                    pour ne pas trop d'embeter, se serait bien d'avoir un petit commentaire sur les lignes de code
                    peut-être que je pourrais me débrouiller mieux après
                    merci du boulot
                    0
                  2. Contributeur
                    Bonjour,

                    si je veux un tirage aléatoire de 5 ou 6 joueurs/terrain aléatoire aussi(pour le 1er tour),
                    Si tu pouvais préciser un peu...
                    5-6 parmi ceux de la colonne A à la place du tirage complet ?
                    évidemment un joueur ne peut être que dans un groupe à la fois
                    Si tu pouvais développer cette notion de groupe aussi...

                    Le mieux est de déposer un fichier exemple avec les explications sur cijoint.fr et coller ici le lien fourni.
                    eric
                    0
                2. bonjour, bonjour

                  en fait j'ai encore réfléchi et oui !
                  il me faudrait plutot un menu déroulant (à partir de l'exemple que tu as fait) qui me permettrait de choisir le nombre de terrrains utilisables.
                  j'explique : au fur et à mesure du tournoi, les joueurs seraient dispatcher sur des terrains différents. On peut utiliser une salle avec 4 moquettes, et une salle avec 2 terrains en dur et 1 salle avec un revêtement plastique.
                  bref, si j'arrive vers les phases finales avec 4 terrains (par exemple) et que je veux créer l'aléatoire du terrain, il me faudrait un menu déroulant: je choisi 4 pour terrains et je crée l'aléatoire.
                  tu comprends au début il y aurait les 8 terrains et après les 4.
                  je peux modifier la macro, mais c'est trop compliqué à chaque fois !
                  tu pourrrais me rajouter ça STP
                  merci

                  autrement ton fichier est super
                  0
                  1. Contributeur
                    Bonjour,

                    Je reformule :
                    Tu voudrais pour la distribution des terrains choisir le nombre de terrains.
                    Par exemple :
                    - 8 : on distribue les 8 matches suivants aléatoirement sur des n° 1 à 8
                    - 4 : on distribue les 4 matches suivants aléatoirement sur des n° 1 à 4
                    0
                3. non, je reformule,
                  je voudrais une liste de validation qui aille de 1 à 8 par exemple.
                  je choisirais le nombre de terrains à utiliser et en fonction de mon choix, les terrains seraient affectés de manière aléatoires pour les matches et bien sur en fonction de ce nombre.
                  si j'ai besoin de 8 terrains, je choisi 8 et les matches de manière aléatoires sont répartis sur les 8 terrains de manière aléatoire.
                  si je choisis, 4 terrains, idem : 4 matches sur 4 terrains aléatoires

                  est-ce clair ? éric
                  pardon pour mes nouvelles demandes
                  0
                  1. Contributeur
                    Je ne suis pas sûr d'avoir bien compris car je ne vois pas la différence entre ta reformulation et la mienne.
                    Voici une proposition, tu arriveras peut-être à mieux m'expliquer ce qui m'échappe :
                    Doublettes.xls
                    eric
                    0
                4. non, non tu pars bien, mais si j'ai par exemple 12 matches, il me faut 12 terrains.
                  en fait, je voudrais autant de terrains que de matches joués.
                  j'ai essayé de modifier ton code, mais ça bogue !
                  si j'essaye avec 20 terrains maxi, je bogue tout

                  mais tu es bien parti, très bien même
                  tu peux encore m'aider ?
                  merci éric du coup de main
                  0
                  1. Contributeur
                    Désolé mais je ne vois toujours pas où est le pb...
                    Si tu saisis 20 il te placera les nombres de 1 à 20 de façon aléatoire (dans la limite des matches sans terrain)
                    Si ce n'est pas ce que tu veux fais un effort sur la description
                    0
                5. OK, OK je n'avais pas bien utiliser ta macro.
                  j'vais cru repérer un petit bug.
                  bon je crois que tu m'as bien aider et je t'en remercie.
                  A plus !
                  0
                  1. Contributeur
                    ok :-)
                    n'oublie pas de mettre en résolu si ça l'est
                    eric
                    0