Tirage au sort avec chapeau (Tennis)

  • Initiateur de la discussion Initiateur de la discussion Quentin4h
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Quentin4h

XLDnaute Nouveau
Bonjour à tous,

J'ai trouvé de nombreux postes à propos de tirage au sort, et j'en ai même trouvé qui corresponde à peu de chose près à ce que je recherche. Malheureusement, c'est ce "peu de chose" qui m'empêche de terminer, c'est pourquoi je fais appelle à vous.
Je souhaite réaliser un tirage au sort amenant à répartir 32 joueurs dans 8 groupes de 4 joueurs. La différence est que j'ai des têtes de séries (ou des chapeaux, un peu comme lors des tirages au sort de football). Je voudrais qu'il y ait un joueur de chez chaque chapeau dans chaque groupe (autrement dit, 4 chapeaux de 8).
De plus, je souhaiterais que la page ne soit pas modifié une fois le tirage au sort effectué, comme c'est le cas avec la fonction "alea" que j'ai essayé plusieurs fois. Je me doute qu'il faut réaliser une macro, mais étant limité aux macros de bases, je me permet de demander sur ce forum.
Ci-joint un exemplaire de ce que je souhaite. Seule la première page nous concerne. Je serai capable de me débrouiller pour la suite.

Merci d'avance pour les réponses que vous apporteraient.
Et Bonne Soirée.
 

Pièces jointes

Re : Tirage au sort avec chapeau (Tennis)

Bonsoir à tous,

Une possibilité avec le code ci-après.

Cordialement

KD
VB:
Sub PoulesChapeau()
    Dim Ta() As Byte, i As Byte, j As Byte, k As Byte, r As Byte, a As Byte, b As Byte
    Randomize
    For i = 1 To 4
        ReDim Ta(7)
        For j = 1 To 8
            r = Int((9 - j) * Rnd) + 1: a = 0
            For k = 0 To 7
                a = a + (1 - Ta(k))
                If a = r Then Ta(k) = 1: Exit For
            Next k
            b = Int((j - 1) / 4)
            Worksheets("TAS").Cells(15 + i + 6 * b, 2 + j - 4 * b) = Worksheets("TAS").Cells(4 + k, 2 + i)
    Next j, i
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
221
Réponses
5
Affichages
1 K
Réponses
14
Affichages
370
Réponses
2
Affichages
798
Réponses
6
Affichages
840
Réponses
30
Affichages
3 K
Réponses
6
Affichages
768
Réponses
13
Affichages
4 K
Retour