Tirage au sort aléatoire pour la pétanque

natorp

XLDnaute Accro
bonsoir à tous et toutes,

J'ai regardé plusieurs fils, mais je n'ai pas trouvé ce que je cherche
A partir d'une liste (colonne A) créer de façon aléatoire les doublettes d'un tournoi de pétanque en évitant les doublons et d'associer 2 femmes ensemble (critères en colonne B)

j'ai joins un fichier pour travailler, j'ai bien vu qu'il existe une fonction ALEA mais je ne sais pas comment m'en servir... et si cela est la bonne piste...

merci de votre aide et attention, cordialement, Gérard
 

Pièces jointes

  • Classeur1.xls
    16.5 KB · Affichages: 1 486
  • Classeur1.xls
    16.5 KB · Affichages: 1 483
  • Classeur1.xls
    16.5 KB · Affichages: 1 472

pierrejean

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Bonjour à tous

Un essai pour JOAN

A tester et me tenir au courant S.V.P

NB: Je n'ai pas du bien comprendre puisque le fichier semble donner des solutions pour 8 joueurs
 

Pièces jointes

  • JOAN1.xlsm
    37.8 KB · Affichages: 118

Dranreb

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Bonsoir.

LeBouliste72, bien qu'il aurait mieux valu, à mon avis que vous ouvriez votre propre discussion, je peux vous dire que ma procédure de réattribution aléatoire de numéros à partir d'un modèle correct préétabli pourrait sans doute aussi être utilisée dans votre cas.

Edit. Je viens de voir qu'il existe une discussion ouverte par vous à laquelle personne n'a répondu. Mais ma réponse reste valable.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Bonjour.
J'ai du nouveau si ça vous intéresse toujours.
Ça concerne la planification du tournoi par choix aléatoires successifs parmi les joueurs disponibles.
La solution met en œuvre une procédure récursive à laquelle on demande si une rencontre est possible pour la 1ère ligne de la 1ère manche. Récursive, ça signifie qu'elle demande à son tour par une autre exécution de ses propres instructions s'il existe une solution pour la 2ième ligne de la 1ère manche, et ainsi de suite…
Il s'avère que pour 16 joueurs le temps nécessaire pour le déterminer la solution est toujours assez court. Il le reste même s'il y a une 5ième manche.
En revanche pour moins de joueurs le temps nécessaire à déterminer qu'il n'y a pas de solution est très très long.
Dans l'état actuel le nombre de joueurs doit être multiple de 4.

Pour 12 joueurs une solution est trouvée en quelque dixièmes de secondes dans 9 cas sur 10 et en 40 secondes dans 1 cas sur 100 (ce ne sont que des estimations d'après observation)
 

Pièces jointes

  • ListeAléat.xlsm
    55.5 KB · Affichages: 110
  • ListeAléat.xlsm
    55.5 KB · Affichages: 105
Dernière édition:

JOAN66

XLDnaute Junior
Re : Tirage au sort aléatoire pour la pétanque

Bonjour a tous , désolé de ne pas avoir répondu a vos message mais des obligations m'ont retenu loin du PC et d'Excel.
Pierrejean sur l'essai "Joan1.xlsm" hélas il y a des doublons . La solution de Dranreb " Tournois 2 contre 2 " me paraît plus approprié a mon projet . Serait il possible de mettre une liste de noms et faire tourner les Nbres aléatoires de 1 a 156 participants .
Les copains du club de Pétanque me donnent des idées de plus en plus contraignante pour faire les tournois avec Excel, Logiciel que malheureusement je ne maitrise pas .( exp: ne pas mettre deux femmes ensemble , et également pas de femme en tête a tête )
Tout le club se joint a moi pour vous remerciez de tout les efforts que vous faites pour trouver une solution au projet.
Cordialement Jean Marie
 

JOAN66

XLDnaute Junior
Re : Tirage au sort aléatoire pour la pétanque

Re bonjour Dranrb, désolé ne n'ai pas vu que l'on peut modifier le nbres de joueurs et le nbres de manche .
je fais des essais et je vous tiens au courant .
Merci beaucoup pour votre aide
 

Dranreb

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Ajouté les tête à tête pour nombre de participant non multiple de 4.
Et chose incroyable: non seulement il y a des solutions pour 10 joueurs mais ça semble plus facile que pour 12 joueurs.
C'est vrai que ça élimine des cas de partenaires ne devant plus rejouer ensemble, mais quand même, un joueur ne peut y être qu'une fois et ça compte avec son adversaire pour une rencontre.

Pour les contraintes supplémentaires (sexe ou club) ça ne change pas l'algorithme, même si ça lui complique la tâche :
Pour qu'un joueur ne puisse jamais aller en tête à tête ou que deux joueurs ne puisse jamais être partenaires ou adversaires il suffit de noter à l'initialisation qu'ils sont supposés l'avoir déjà été.
 

Pièces jointes

  • ListeAléat.xlsm
    61 KB · Affichages: 109
  • ListeAléat.xlsm
    61 KB · Affichages: 76

JOAN66

XLDnaute Junior
Re : Tirage au sort aléatoire pour la pétanque

Re-Dranreb , la dernière solution proposé est très satisfaisante . Le message( Pas de solution trouvée ) en 8 joueurs en 4 manches est une bonne idées ,cela permet de réduire a 3 manches, excellent ! . Peut t'on faire disparaitre le bouton tirage, si supérieur a 3 manches ou mettre un message (exp: incompatible ) . De toutes les solutions c'est celle-ci que a le meilleurs résultat pour mon projet.
Le tête a tête est également bien trouvé et qui fonctionne , Yess !
Chapeau Monsieur, ou Chapeau Madame .
Cordialement Joan
 

Dranreb

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Oui, ça doit pouvoir se faire. Je me concentre sur l'algorithme essentiel. Après le reste ce n'est plus que de l'intendance qu'il vous appartiendra d'assumer. Mais vous pourrez toujours bénéficier de notre aide. Je reste de toutes façon à votre disposition pour toutes questions d'interface avec la procédure de tirage.
 

JOAN66

XLDnaute Junior
Re : Tirage au sort aléatoire pour la pétanque

Bonjour Dranreb, après multiples essais a faire tourné la macro des Nbres aléatoires et de faire varié le nombres de participants , tout fonctionne !. Super! Bravo! Monsieur .
Je souhaiterai copier les plages feuille " Tournois 2 contre 2 "(B7 à Q47) et les coller sur une feuille du même classeur nommé "Tableau Tournante " en N6 à AC46.
J'ai essayé mais il y a la première ligne en haut et le reste en bas de la feuille .
Bref je suis perdu !
Pourriez vous m'aider?
Cordialement Joan
 

Pièces jointes

  • copie Tableau Liste Aleatoire.xlsm
    117 KB · Affichages: 119

Dranreb

XLDnaute Barbatruc
Re : Tirage au sort aléatoire pour la pétanque

Bonsoir
En N6, à propager sur 6 lignes et 16 colonnes :
Code:
=INDEX('Tournois 2 contre 2'!Rencontre;LIGNE()-5;COLONNE()-13)
Mais ne préfèreriez vous pas que le tirage soit produit directement dans une plage nommée de la feuille Tableau tournante ?
Je vous dit ça parce que les #REF! de vos formules venaient de ce que la partie Mise en forme et affichage du résultat de la procédure ajustait la taille de la plage nommée "Rencontre" par insertion ou suppression de lignes et colonnes manquantes ou en trop.

Pour que la procédure Tirage22 envoie directement le résultat en plage N6:AC46 de l'objet Worksheet nommé Feuil1 (Tableau Tournante), il suffit de réécrire la fin plus simplement, comme ça :
VB:
Rem. ——— Mise en forme et affichage du résultat
Dim PlgRés As Range: Set PlgRés = Feuil1.[N6:AC46]
ReDim TAff(1 To PlgRés.Rows.Count, 1 To PlgRés.Columns.Count)
For L = 1 To LMax: For M = 1 To MMax: For C = 1 To 4
   If Tirage(M, L, C) <> 0 Then TAff(L, 4 * (M - 1) + C) = Tirage(M, L, C)
   Next C, M, L
PlgRés.Value = TAff
End Sub

Et en mettant ça au début vous n'auriez plus du tout besoin de la feuille "Tournois 2 contre 2" :
VB:
Rem. ——— Initialisations
JMax = Feuil1.[B170].End(xlUp).Row - 5
If JMax Mod 2 = 1 Then
   MsgBox "Tirage non applicable pour un nombre impair de participants.", _
   vbCritical, "Tirage22": Exit Sub: End If
MMax = IIf(JMax <= 8, 3, 4)
 
Dernière édition:

JOAN66

XLDnaute Junior
Re : Tirage au sort aléatoire pour la pétanque

Bonsoir Dranred, je viens de modifier la macro comme indiqué au dessus ,Mais hélas je ne suis pas doué avec Excel.
Il y a une message d'erreur sur la macro.
Dim PlgRés As Range: Set PlgRés = Feuil1.[N6:AC46] ' Set souligné en jaune et bloque .
Le code doit je le mettre sur Déclaration "génèral " ou sur la page Worksheet ? . j'ai essayé les deux et ça ne fonctionne pas

la proposition de le mettre directement en page "Tableau Tournante " de n6 a AC46 me convient parfaitement .
Milles mercis
Joan
 

Discussions similaires

Statistiques des forums

Discussions
311 735
Messages
2 082 023
Membres
101 873
dernier inscrit
excellllll