Tirage au sort avec pré tirage

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

gourdin

XLDnaute Impliqué
Bonjour,

J'ai récupéré une macro qui me permet d'attribuer des N° à des noms (cf fichier joint) et qui fonctionne parfaitement (merci les forums).

L'affaire se complique car il arrive que des N° soit attribués à des noms avant le tirage au sort (têtes de série en sport).
Comment attribuer des numéros au sort en tenant compte de numéros déjà attribués ?

Voir pièce jointe

Merci
 

Pièces jointes

Bonjour,

Après test, les 3 propositions fonctionnent bien et voici mes remarques :

Proposition de MODESTE
Je n'arrive pas pour le moment à l'adapter à mon projet car la répartition est en poules avec des N° déjà attribués par poule.
Ce qui n'est pas le cas dans mon projet avec 1 seule liste.

Proposition de DRANREB
Je vais continuer les tests et voir si je suis capable de l'adapter à mon projet.

Proposition de PIERREJEAN
Respecte au plus près ma demande en conservant un seul tableau et en figeant les N° des têtes de série
Mais j'ai constaté que les tirages au sort sont prévisibles. Et cela ne doit pas l'être.
Exemple : on réalise un tirage sans enregistrer le fichier, on ouvre à nouveau le fichier et c'est le même tirage qui est proposé. Il y a t-il possibilité d'éviter celà ?

Merci encore
 
Bonjour.
Peut être est-ce ainsi que vous voulez l'adapter ? :
VB:
Sub Tirage()
Dim LAt As New ListeAléat, T(), L&
Randomize
LAt.Init Feuil1.[F5].Value
T = Feuil1.[E8].Resize(LAt.Count, 3).Value
For L = 1 To UBound(T, 1)
   If Left$(T(L, 3), 9) = "Tête de s" Then LAt.Remettre T(L, 2), L
   Next L
For L = 1 To UBound(T, 1)
   T(L, 2) = LAt.Aléat(L): Next L
Feuil1.[E8].Resize(UBound(T, 1), 2).Value = T
End Sub
 
Bonjour.
Peut être est-ce ainsi que vous voulez l'adapter ? :
VB:
Sub Tirage()
Dim LAt As New ListeAléat, T(), L&
Randomize
LAt.Init Feuil1.[F5].Value
T = Feuil1.[E8].Resize(LAt.Count, 3).Value
For L = 1 To UBound(T, 1)
   If Left$(T(L, 3), 9) = "Tête de s" Then LAt.Remettre T(L, 2), L
   Next L
For L = 1 To UBound(T, 1)
   T(L, 2) = LAt.Aléat(L): Next L
Feuil1.[E8].Resize(UBound(T, 1), 2).Value = T
End Sub
Après quelques tests rapides celà correspond bien à ce que je souhaite
Je vais tester un peu plus précisément dès que possible.
Merci
 
Bonsour®
Je n'arrive pas pour le moment à l'adapter à mon projet car la répartition est en poules avec des N° déjà attribués par poule.
Ce qui n'est pas le cas dans mon projet avec 1 seule liste.

???
le même sans et avec les poules
upload_2017-6-17_11-2-20.png
 

Pièces jointes

En effet le tirage n'est plus prévisible et celà me parait très bien.
Je reviens vers vous si nécessaire
Merci
En effet le tirage n'est plus prévisible et celà me parait très bien.
Je reviens vers vous si nécessaire
Merci
En pièce jointe mon fichier adapté avec la macro mais j'aimerais qu'elle devienne évènementielle car il y a pas mal de tableaux à gérer et 1 seule code macro m'arrangerai.

D'habitude j'arrive à modifier le code avec des références relatives mais avec cette macro (un peu compliquée pour mon niveau) je ne m'en sors pas.
Voir Fichier joint.
Merci
 

Pièces jointes

- 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
5
Affichages
1 K
Réponses
30
Affichages
3 K
  • Question Question
XL 2010 tournoi
Réponses
13
Affichages
3 K
Retour