XL 2010 Tirage aléatoire d'équipes de 2

dev_co

XLDnaute Occasionnel
Bonjour
J'ai bien avancé sur ce code mais à force , je tourne en rond pour trouver comment empêcher les doublons dans ce tirage d'exemple de 8 équipes donc pour 4 rencontres
le nombre de 8 n'est pas figé et là aussi cela pourra être impair donc sortir une équipe exempte
 

Pièces jointes

  • testtirage.xlsm
    32.5 KB · Affichages: 10

dev_co

XLDnaute Occasionnel
Oui j'ai déjà vu ça et même bien d'autres encore ......!!! déjà ça ne rentre pas dans mon projet
Et je ne veux pas tout casser et recommencer . Là c'est juste la méthode qui ne doit pas être assez stricte et je cherche comment y remédier
 

dev_co

XLDnaute Occasionnel
Bonsoir Sylvanu
Bien merci !!! déjà oui pas de doublon
Mais il y a un petit truc qui a dû t'échapper > :
le nombre de 8 n'est pas figé et là aussi cela pourra être impair donc sortir une équipe exempte
là ça fait 9 ?? donc il faut exclure une équipe mais qui reste dans le tableau car on lui attribue une victoire d'office
Donc dans le tirage 2 , là @sylvanu tu me fais une propo d'avance !!!😄😄 ( anticipé) c'est selon les scores de la 1 je devais faire un classement et surtout repérer les gagnants / perdants donc dans la grille 2 on doit faire tirage G-G et P-P ce sera idem pour la dernière qui abouti à un classement final ,
Mon seul gros soucis était de maîtriser les tirages "Aléatoires" sans DOUBLON !!!!!
Là Vu le super concentré de ton code , je ne suis pas à la hauteur pour modifier Si IMPAIR ?
Mais vraiment tu es efficace !!!
Sinon d'après ce que j'ai vu hier dans notre concours c'est 4 Tirages MAX !!
Encore grand merci
 

Dranreb

XLDnaute Barbatruc
En somme vous n'avez besoin d'un classement aléatoire que pour l'appariement de la 1ère manche, comme la feuille de démo. Et tout comme pour elle un objet ListeAléat peut vous donner instantanément une liste de numéros en ordre aléatoire de 1 au nombre spécifié à sa méthode Init. Voir son module de classe muni de commentaires explicatifs d'utilisation de ses méthodes. Voir aussi les commentaires explicatifs du module MTSuisse.
 

Dranreb

XLDnaute Barbatruc
Si vous ne voulez que le tirage de la 1ère manche, on peut l'écrire comme ça :
VB:
Private Sub CommandButton1_Click()
   Dim wsInscription As Worksheet, wsTirage As Worksheet, DLig As Long, _
      NbEquipes As Long, LAt As New ListeAléat, P As Long
Rem. Référence à la feuille "Inscription"
   Set wsInscription = Worksheets("Inscription")
   
Rem. Référence à la feuille "Tirage"
   Set wsTirage = Worksheets("Tirage")
   
Rem. Trouver le nombre d'équipes (dans la colonne A de la feuille "Inscription")
   DLig = wsInscription.Range("A100").End(xlUp).Row
   NbEquipes = DLig - 6
   
Rem. Production de l'appariement manche 1
   [A8:D13].ClearContents
   Randomize
   LAt.Init NbEquipes
      For P = 1 To LAt.Count
         Cells((P + 1) \ 2 + 6, (P Mod 2) * 2 + 1).Value = LAt.Aléat(P)
         Next P
   End Sub
N'oubliez pas de glisser déposer le module de classe ListeAléat de mon classeur.
 

dev_co

XLDnaute Occasionnel
Bonjour
merci Dranreb , il va falloir que je regarde tout ça , j'ai déjà vu moultes exemples ( principalement d'ici ) et un spécial du COS d'Amiens écrit spécialement pour un gros club mais pas évident à utiliser pour des petits concours de "quartier" !!😃
 

dev_co

XLDnaute Occasionnel
bonsoir
Bon un peu de boulot et voilà tout simplement comment on affiche une équipe seule !!
Maintenant , faut que je m'attèle au classement mais surtout comment "tirer" les gagnant / gagnant et le reste , critère Sup pour le 2 et le 3
A suivre !!!
 

Pièces jointes

  • testtirage.xlsm
    29.5 KB · Affichages: 1

Dranreb

XLDnaute Barbatruc
La Function AppSSssSmpOK de mon module MTSuisse s'occupe du tirage et le renvoie dans un tableau Public TAppa. Renvoie True si ça s'est bien passé.
Mais il faut préalablement avoir exécuté InitAppSSssSmp puis affecté à PositClass(ChaqueJoueur) sa position au classement et fourni à DéjàRencontrés toutes les paires de joueurs qui se sont déjà rencontrés.
La AppSSSOK s'occupe de toutes les étapes mais impose en contrepartie la manière dont les infos nécessaire sont stockée dans des tableaux à spécifier.
 
Dernière édition:

dev_co

XLDnaute Occasionnel
Bonjour
Ok Dranreb bien, mais mon niveau ne me permet pas de comprendre le chinois ;) (AppSSssSmpOK, InitAppSSssSmp ..etc ) vous pouvez pas affecter des termes basiques ?
Sinon Le fichier excel pour mon cas ne donne rien ?? je n'ai rien vu qui ait une corrélation avec mon fichier de base ??
Sinon si c'est de toi c'est du beau boulot ......... mais pour des experts
 

patricktoulon

XLDnaute Barbatruc
bonjour
on va faire simple
VB:
Sub BtTirage1_Cliquer()
    tirageausort2 1
End Sub
Sub BtTirage2_Cliquer()
    tirageausort2 6
End Sub
Sub BtTirage3_Cliquer()
    tirageausort2 11
End Sub
Sub tirageausort2(cx)
    Dim T, T2, I&, C, LIg&, maxlig&
    With Sheets("Inscription"): T = Application.Transpose(.Range("A7", .Cells(Rows.Count, "A").End(xlUp)).Value): End With
    maxlig = Round(UBound(T) / 2)
    ReDim T2(1 To UBound(T), 1 To 4)
    For I = 1 To UBound(T): x = Round(1 + (Rnd * (UBound(T) - 1))): temp = T(I): T(I) = T(x): T(x) = temp: Next
    C = 1: LIg = 0
    For I = 1 To UBound(T):
        LIg = LIg + 1: T2(LIg, C) = T(I): If LIg = maxlig Then C = 3: LIg = 0
    Next
    With Cells(7, cx).Resize(UBound(T2), 4)
        .ClearContents
        .Value = T2
    End With
End Sub
 

Pièces jointes

  • testtirage V 2 pat .xlsm
    28.2 KB · Affichages: 4

dev_co

XLDnaute Occasionnel
Bonjour
Merci Patrick , ça ressemble fort à Sylvanu du début ?
Qui lui aussi n'avait pas traité le cas Impair !! ce que j'ai modifié ( Ne joue pas et gagne 13-7)
Ensuite les autres tirages devront tenir compte d'un critère > Gagnant - Gagnant ; Perdant - Perdant
J'avais commencé en alimentant un tableau style dim G(1 to 16 , 1 to 2) donc le 1 comprenait les G et le 2 les P
Mais là Grave !!! je ne retrouve plus mon fichier ?? A tout coup ,Quitte sans sauve !!!! bon ça m'occupera
 

Pièces jointes

  • concours1.xlsm
    36.3 KB · Affichages: 1

Discussions similaires

Statistiques des forums

Discussions
313 257
Messages
2 096 608
Membres
106 679
dernier inscrit
emmanuel.bougnon@knowllen