XL 2016 Pour concours de boules faire un tri aléatoire par équipe inscrite en formé

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

berru76

XLDnaute Occasionnel
Bonjour je voudrais savoir s'il est possible de faire une macro
Pour avoir un tri aléatoire par équipe inscrite en formé
ci-joint un exemple du fichier
Merci a vous
 
Solution
Pour déclasser des groupes de 3 dont les contenus demeurent, il est possible de faire comme ça :
VB:
Sub DéclasserGroupesDe3(ByVal Rng As Range)
   Dim TEntrée(), TSortie(), N As Long, LE As Long, LS As Long, dL As Long, C As Long
   TEntrée = Rng.Value
   ReDim TSortie(1 To UBound(TEntrée, 1), 1 To 1)
   With New ListeAléat
      Randomize
      .Init UBound(TEntrée, 1) \ 3
      For N = 1 To .Count
         LE = 3 * (N - 1): LS = 3 * (.Aléat(N) - 1)
         For dL = 1 To 3: TSortie(LS + dL, 1) = TEntrée(LE + dL, 1): Next dL
         Next N
      End With
   Rng.Value = TSortie
   End Sub
Excusez moi de ne pas vous avoir répondu plus tôt
Les trois joueurs des équipes s'inscrivent et jouent ensemble sur les 4 parties en triplette formé
le concours ne peut se faire que par inscription d’équipes paires soit 2/4/6/8/10/12 jusqu’à 32
Pour inscription il me faudrait donc une macro tri aléatoire des joueurs 3 par 3 selon le nombre d'inscrits pour le premier tour
ci joint exemple
merci
 

Pièces jointes

  • Inscriptions.PNG
    Inscriptions.PNG
    14.5 KB · Affichages: 24
  • Tirage  24 joueurs.PNG
    Tirage 24 joueurs.PNG
    22 KB · Affichages: 16
Dernière édition:
Est-ce que ça correspond au tirage 3 contre 3 de ce classeur ?
Sinon c'est simplement du 1 contre 1, avec des équipes déterminées une fois pour toutes à l'aide de la fonction perso ListeAl ou, en VBA d'un objet ListeAléat défini par le module de classe du même nom.
 

Pièces jointes

Dernière édition:
Pour changer aléatoirement l'ordre des noms dans une liste vous pouvez par exemple le faire comme ça :
VB:
Sub Test()
   DéclasserNoms ActiveSheet.[C4:C99]
   End Sub
Sub DéclasserNoms(ByVal Rng As Range)
   Dim TEntrée(), TSortie(), L As Long
   TEntrée = Rng.Value
   ReDim TSortie(1 To UBound(TEntrée, 1), 1 To 1)
   Rng.Value = T
   With New ListeAléat
      Randomize
      .Init UBound(TEntrée, 1)
      For L = 1 To UBound(TEntrée, 1)
         TSortie(.Aléat(L), 1) = TEntrée(L, 1)
         Next L
      End With
   Rng.Value = TSortie
   End Sub
 
non cela ne correspond pas au fichier listealeat
dans mon fichier d'origine j'ai une macro tri individuel qui fonctionne bien
je voudrais pouvoir rajouter une macro tri par équipe
je vais teste le glisser
merci
 
Dernière édition:
Qu'est ce qui ne correspond pas à quoi ?
Il y a bien un module de classe ListeAléat dans le fichier ListeAléat.xlsm joint au poste #4, non ?
Eh bien Il faut que votre projet VBA en soit équipé pour pouvoir utiliser un objet de type ListeAléat.
 
Pour déclasser des groupes de 3 dont les contenus demeurent, il est possible de faire comme ça :
VB:
Sub DéclasserGroupesDe3(ByVal Rng As Range)
   Dim TEntrée(), TSortie(), N As Long, LE As Long, LS As Long, dL As Long, C As Long
   TEntrée = Rng.Value
   ReDim TSortie(1 To UBound(TEntrée, 1), 1 To 1)
   With New ListeAléat
      Randomize
      .Init UBound(TEntrée, 1) \ 3
      For N = 1 To .Count
         LE = 3 * (N - 1): LS = 3 * (.Aléat(N) - 1)
         For dL = 1 To 3: TSortie(LS + dL, 1) = TEntrée(LE + dL, 1): Next dL
         Next N
      End With
   Rng.Value = TSortie
   End Sub
 
Vous n'invoquez nulle part la Sub DéclasserGroupesDe3 en lui spécifiant en argument la plage à traiter.
Remarque: vous avez aussi glissé/déplacé d'autre chose. Du coup il faut aussi UFmVisu, XPlanificateur et le module de classe Planification. Sans oublier un Public Tirage() As Long quelque part.
 
Dernière édition:
Je n'ai laissé dans vb que tri aleat
Cela fonctionne
mais encore un petit soucis
si exemple 60 joueurs j ai des cases vides entre les lignes lorsque je fais le tri
peut on rajouter une donnée dans la macro pour ne trier que selon les inscrits
merci
 

Pièces jointes

  • Blancs.PNG
    Blancs.PNG
    31.9 KB · Affichages: 14
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
4
Affichages
266
Deleted member 453598
D
Réponses
32
Affichages
747
Réponses
7
Affichages
184
Réponses
3
Affichages
927
Réponses
7
Affichages
260
Retour