Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016Pour concours de boules faire un tri aléatoire par équipe inscrite en formé
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 !
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
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
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.
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
Il faut glisser/déplacer ce nom avec la souris, dans l'explorateur de projets, depuis la rubrique Modules de classe du projet VBA du ListeAléat.xlsm vers le VBAProject de votre classeur.
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
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.
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
- 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