Tirage au sort avec chapeau (Tennis)

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

  • Tennis.xlsx
    11.3 KB · Affichages: 90

KenDev

XLDnaute Impliqué
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
 

Statistiques des forums

Discussions
312 326
Messages
2 087 312
Membres
103 513
dernier inscrit
adel.01.01.80.19