XL 2016 Concours de boules doublettes tri sur 4 parties

berru76

XLDnaute Occasionnel
Bonjour j'ai ma base de départ ( le premier tour en aléatoire avec liste de noms ) mon soucis c'est de trier les trois autres tours en faisant que les joueurs ne rejouent pas avec les mêmes et si possible ni contre
Merci a vous pour l'aide
 

Pièces jointes

  • Concours essai 4 parties.xlsm
    123.5 KB · Affichages: 17
Solution
Remarque: Il n'est pas possible de faire indépendament les tirages des 4 manches.
Déjà si le nombre de participants devenait exeptionnellement bas, un tirage effectué pour 3 manches ne garantirait pas une solution possible pour la 4ème. Tandis qu'en tirant tout, le programme peut corriger le tirage de l'avant dernière manche pour laisser une solution à la dernière.

Exemple de procédure :
VB:
Option Explicit

Private Sub CBnTirage_Click()
   Dim MMax As Long, LMax As Long, JMax As Long, TNomsJ(), L As Long, M As Long, C As Long, J As Long, LR As Long, CR As Long
 
Rem. ——— Chargement du tableau des noms des participants.
   TNomsJ = WshNoms.[A1].Resize(WshNoms.[A5000].End(xlUp).Row).Value
   JMax = UBound(TNomsJ, 1): MMax = 4
 
Rem. ———...

Dranreb

XLDnaute Barbatruc
Bonsoir.
Toujours ce classeur, qui contient tout ce qu'il faut comme noyau de programmation de base.
Édition. Ah mais je vois que votre classeur en est équipé ! que vous faut-il de plus ?
Et pourquoi tous ces modules vides ?
Supprimez tous ces modules vides, et reprenez le plus gros de la programmation du WhsR2vs2 (2 contre 2). Il devrait y avoir peu de changement.
Pour bien fixer les idées faites un modèle de la présentation du résultat souhaité, avec les 4 tours.
 

Pièces jointes

  • ListeAléat.xlsm
    295.5 KB · Affichages: 31
Dernière édition:

Dranreb

XLDnaute Barbatruc
Remarque: Il n'est pas possible de faire indépendament les tirages des 4 manches.
Déjà si le nombre de participants devenait exeptionnellement bas, un tirage effectué pour 3 manches ne garantirait pas une solution possible pour la 4ème. Tandis qu'en tirant tout, le programme peut corriger le tirage de l'avant dernière manche pour laisser une solution à la dernière.

Exemple de procédure :
VB:
Option Explicit

Private Sub CBnTirage_Click()
   Dim MMax As Long, LMax As Long, JMax As Long, TNomsJ(), L As Long, M As Long, C As Long, J As Long, LR As Long, CR As Long
 
Rem. ——— Chargement du tableau des noms des participants.
   TNomsJ = WshNoms.[A1].Resize(WshNoms.[A5000].End(xlUp).Row).Value
   JMax = UBound(TNomsJ, 1): MMax = 4
 
Rem. ——— Exécute le tirage en indiquant s'il a réussi et si le tableau Tirage est donc garni.
   If Tirage2vs2OK(NbJrs:=JMax, Manches:=MMax, TousJouent:=True) Then
   Rem. ——— Versement des noms vers un tableau dynamique d'après les n° de joueurs contenus dans Tirage.
      MMax = UBound(Tirage, 1) ' Nombre de tours
      LMax = UBound(Tirage, 2) ' Nombre de lignes de rencontres.
      ReDim TRésult(1 To 2 + LMax, 1 To MMax * 4)
         For M = 1 To MMax
            TRésult(1, (M - 1) * 4 + 1) = "Manche " & M
            TRésult(2, (M - 1) * 4 + 1) = "Équipe 1"
            TRésult(2, (M - 1) * 4 + 3) = "Équipe 2"
            Next M
         For L = 1 To LMax: CR = 0: LR = L + 2
            For M = 1 To MMax: For C = 1 To 4: CR = CR + 1
               J = Tirage(M, L, C): If J <> 0 Then TRésult(LR, CR) = TNomsJ(J, 1)
               Next C, M, L
       
   Rem. ——— Déchargement du tableau TRésult vers la plage souhaitée.
      Me.[E4].Resize(UBound(TRésult, 1), UBound(TRésult, 2)).Value = TRésult
      End If
   Me.[A1].Select
   End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 765
Messages
2 091 873
Membres
105 084
dernier inscrit
lca.pertus