Autres Tirage au sort pour concours de pétanque.

  • Initiateur de la discussion Initiateur de la discussion Fcarroué
  • 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 !

Fcarroué

XLDnaute Nouveau
Bonjour aux experts d'Excel et aux autres.
J'ai réalisé un tableau de concours de pétanque qui calcule et classe les équipes, d'environ 16 voire plus.
Je cherche à réaliser un tirage automatique, mais mes connaissances en formule sur Excel ont leurs limites.
Y a-t-il quelqu'un dans la communauté pour m'aider à réaliser ce genre de chose ?

Je vous remercie par avance.
 
Il y a 35 rencontres en double mais pas de partenariats en double.
Remarque: je l'ai établi avec ce code :
VB:
Option Explicit
Sub Vérif()
   Dim NbPart() As Integer, NbRenc() As Integer, TDon(), L&, C&, X&, TSpl1$(), TSpl2$(), P1%, P2%, TRésu(), TJA()
   TDon = [Tabel2].Value
   ReDim NbPart(0 To VersusJA(57, 56)), NbRenc(0 To VersusJA(57, 56))
   For L = 1 To UBound(TDon, 1): For C = 2 To UBound(TDon, 2)
      TSpl1 = Split(TDon(L, C), " vs ")
      TSpl2 = Split(TSpl1(1), "-")
      TSpl1 = Split(TSpl1(0), "-")
      For P1 = 1 To UBound(TSpl1): X = VersusJA(TSpl1(0), TSpl1(P1)): NbPart(X) = NbPart(X) + 1: Next P1
      For P2 = 1 To UBound(TSpl2): X = VersusJA(TSpl2(0), TSpl2(P2)): NbPart(X) = NbPart(X) + 1: Next P2
      For P1 = 0 To UBound(TSpl1): For P2 = 0 To UBound(TSpl2)
         X = VersusJA(TSpl1(P1), TSpl2(P2)): NbRenc(X) = NbRenc(X) + 1
         Next P2, P1, C, L
   ReDim TRésu(1 To UBound(NbPart) + 1, 1 To 4)
   For L = 1 To UBound(TRésu, 1)
      TJA = JAVersus(L - 1)
      TRésu(L, 1) = TJA(0)
      TRésu(L, 2) = TJA(1)
      TRésu(L, 3) = NbPart(L - 1)
      TRésu(L, 4) = NbRenc(L - 1)
      Next L
      [C15].Resize(UBound(TRésu, 1), 4).Value = TRésu
   End Sub
Public Function VersusJA(ByVal J As Long, ByVal A As Long) As Long
   Dim Echg As Long
   If J > A Then Echg = A: A = J: J = Echg
   If A > J Then VersusJA = A * (A - 3) \ 2 + J Else VersusJA = -1
   If VersusJA < 0 Then Err.Raise 9999, , "VersusJA(" & J & ", " & A & ") impossible."
   End Function
Public Function JAVersus(ByVal VS As Long)
   Dim J As Long, A As Long
   A = Int(Sqr(2 * VS + 0.25) + 1.5)
   J = VS - A * (A - 3) \ 2
   JAVersus = Array(J, A)
   End Function
 
Dernière édition:
un essai, on a le nombre de joueurs et on dit le nombre de terrains maximal et le nombre de jeux et on pousse le bouton.
première colonne du TS = patron de l'assignements des joueurs avec S=Single, D=Double et T=Triplette,donc TD= triplette versus double
Puis dans le statusbar on voit le progrès (premier chiffre = n° du boucle, 2ième chiffre = nombre d'erreurs à résoudre)
Quand la macro est terminée, on reçoit le résultat dans le TS et le nombre d'erreurs non-résolues dans la cellule D12.
On a un résumé dans la feuille "tables"
A gauche, on a un TS et un TCD pour les triplettes. Pour le moment, je ne fais rien avec ces données. Un triplette représente 3 couples, donc si je veut minimaliser les fréquences des couples, un triplette est d'un niveau plus élevé en difficulté, donc cela se resoud tout seul.
A droit, on a les couples "co-equipiers" et "adversaires" dans les plages AA1😀V100 et AA101😀V200. La moitié est grisée, parce qu'on compte chaque couple et le couple "miroir" une fois, donc "1-2" et "2-1" sont compté comme 1-2.
Le tableau "tabel4" compte la fréquence des couples et le but final est que chaque couple a max une seule occurence, donc un 0 ou 1 dans les colonnes AA😀V. On a un idée du degré de difficulté avec le nombre de chiffres (et cellules vides) qu'on voit dans ces colonnes.

La cellule D12 vous montre le nombre de manquements (la plupart à cause des couples "adversaires") dans l'esprit "mieux une mauvaise solution que pas de solution du tout"

Je dois encore ajouter des commentaires dans l'editeur VBA
 

Pièces jointes

Bonsoir
Je vais m'arreter au fichier du post 27 car il ne bloque pas et me permettra de faire mes tableaux. Celui du message #30 pour par exemple 54 joueurs et 9 terrains met trop de temps à trouver de le faire tout en triplettes
Je vais établir mes tables et les basculer dans un onglet. yep encore merci pour votre travail.
 
Bonsoir.
Je l'ai lancé plusieurs fois pour 54 joueurs et 9 terrains, 4 manches et forcément aussi 4 maxi en équipes de 3 dans ce cas, le résultat a chaque fois été immédiat.
Même une 5ème manche (avec 5 maxi en équipe de 3 évidemment) ne pose pas de problème.
Si on oublie d'augmenter le nombre de manches joué en équipe de 3 lorsqu'on passe d'une configuration à peu triplettes à une autre à beaucoup, on le voit assez vite. Il suffit de fermer la boîte, corriger et relancer. Le mieux aurait été de trouver une règle permettant de le déterminer automatiquement …
 
Dernière édition:
S'il n'y a que des triplettes, le nombre de manches jouées en équipes de 3 doit évidemment être égal au nombre total de manches.
Par contre s'il y a assez peu de triplettes pour qu'une seule manche en groupe de 3 suffise pour tous, mais que vous y laissez le nombre de manches, à tous les coup vous allez en avoir un tout petit nombre qui y seront presque à toutes les manches et quelques autres à 2 par exemple …
 
Dernière édition:
- 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
6
Affichages
871
Réponses
2
Affichages
2 K
Retour