Tirage au sort avec pré tirage

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

  • 00_tirage_sort_forum.xls
    50.5 KB · Affichages: 37

gourdin

XLDnaute Impliqué
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
 

Dranreb

XLDnaute Barbatruc
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
 

pierrejean

XLDnaute Barbatruc
Re

J'avais omis le Randomize qui permet d'avoir toujours une série différente
Vois si cela va mieux
NB:
En cas de changement de tête de série passer la colonne F en Font bleue et noter les têtes de série en rouge
 

Pièces jointes

  • 00_tirage_sort_forum.xls
    52 KB · Affichages: 26
Dernière édition:

gourdin

XLDnaute Impliqué
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
 

Modeste geedee

XLDnaute Barbatruc
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

  • 00_tirage_sort_forum (3).xls
    70.5 KB · Affichages: 23

gourdin

XLDnaute Impliqué
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

  • tirage_sort_forum_2.xls
    43.5 KB · Affichages: 24

Statistiques des forums

Discussions
312 088
Messages
2 085 200
Membres
102 816
dernier inscrit
bolivier