Tirage au sort

C@thy

XLDnaute Barbatruc
Bonjour les amis,

un de mes utilisateurs me pose la question suivante : (fichier exemple joint)

Postulat 1 j’ai un tableau qui classe des valeurs dans un ordre défini. Ici pour l’exemple plaçons A en 1er, B en 2nd, C en 3eme…jusqu’à Z.
Postulat 2 : en vue d’un éventuel tirage au sort je joue les 5 premières valeurs.
Le tirage au sort est fait, par exemple j’ai joué A B C D E et le tirage est Z V T A S.
Pour le prochain tirage je vais donc jouer les 4 valeurs qui ne sont pas tombées(B C D E) plus la 6ème valeur du tableau initial (postulat 1) à la place du A qui a été tiré au sort.
Au tirage suivant je joue donc B C D E et F, Si au tirage le résultat est C F U Y O, je jouerai donc au prochain coup B D E G H (C ET F étant tirés je ne les joue plus).
Ainsi de suite jusqu’à ce que le Z soit joué. Je recommence en jouant le A comme valeur suivant si une des valeurs sur les 5 joués est sélectionnée.

A mon avis, on peut réaliser cela aussi bien par formules que par macro.
L'intitulé est un peu complexe, à savoir tirage de 5 valeurs sur 26 dans l'exemple, mais peut-être que le tableau est de dimension variable...

Auriez-vous une idée sur la façon de procéder, et pourriez-vous m'aider sur ce cas?

En vous remerciant,

Bises à toutes et tous:cool:,

C@thy
 

Pièces jointes

  • Tirage1.xls
    30 KB · Affichages: 62
  • Tirage1.xls
    30 KB · Affichages: 63
  • Tirage1.xls
    30 KB · Affichages: 63

piga25

XLDnaute Barbatruc
Re : Tirage au sort

Bonjour Cathy,
Regarde si cela peut aider ou donner une idée.
Je ne suis pas sur pour les doublons éventuels.
Pour faire le tirage faire F9 puis reporter dans la colonne B ce tirage s'il est conforme.
 

Pièces jointes

  • Tirage au sort pour Cathy.xls
    35.5 KB · Affichages: 77

C@thy

XLDnaute Barbatruc
Re : Tirage au sort

OK, Piga, Merci à toi. C'est très intéressant. J'adore...

Il s'agit de faire un tirage sur 5 valeurs puis de recommencer un deuxième tirage en éliminant ce qui est déjà sorti avant,
et de pouvoir recommencer sans fin...

Edit : j'ai mis les valeurs sur 5 lignes seulement, c'est OK,
ce qu'il y a c'est que pour le tirage suivant je suis obligée de choisir les 5 valeurs à la main, en fonction du tirage aléatoire,
de plus il y a parfois des doublons dans ce tirage aléatoire...
mais déjà pas mal...

Bises

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : Tirage au sort

Il y a également des formules intéressantes de Tibo (coucou Tibo)
ici : https://www.excel-downloads.com/threads/tirage-aleatoire-sans-doublon.65932/

len seul truc c'est de tenir compte de l'ordre de la liste de départ...
- on choisit 5 valeurs selon l'ordre de la liste : la 1ère fois : A, B, C, D, E
- on génère 5 valeurs aléatoires parmi les 26 de départ, (ta super formule excluait les 5 valeurs des 26, or elles doivent être possibles).
- on compare avec le choix des 5 valeurs du départ
- en fonction du nombre de valeurs identiques on garde ces valeurs et on génère les autres

Bises

C@thy
 
Dernière édition:

C@thy

XLDnaute Barbatruc
Re : Tirage au sort

Arf! non! ça marche pas...

ça coince ici :
Code:
 atirer(x) = ""
Bizz

Edit : en fait, c'est plus compliqué avec les chiffres car lors de la comparaison du tirage aléatoire avec le choix du début, il peut confondre 1 et 12 avec 11 et 2

Damned...:mad:

C@thy
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Tirage au sort

Bonsoir à tous.



C'est sans doute trop tard, mais puisque c'est fait...
(Comme d'habitude, la version .xls n'a pas été testée sous Excel2003.)



ROGER2327
#6736


Mardi 3 Phalle 140 (Zebb, passe - partout - fête Suprême Quarte)
26 Thermidor An CCXXI, 8,2623h - myrthe
2013-W33-2T19:49:46Z
 

Pièces jointes

  • XLD_209591_Tirage.xls
    46 KB · Affichages: 34
  • XLD_209591_Tirage.xlsm
    21.7 KB · Affichages: 36

C@thy

XLDnaute Barbatruc
Re : Tirage au sort

Merci Roger,

non, il n'est jamais trop tard pour bien faire.

Cela fonctionne super bien.

Le problème c'est que ça pourrait aussi être des chiffres, de 1 à 26, et là, forcément ça coince car on aurait 2 caractères... mais pas tout le temps.
(ils sont compliqués ces utilisateurs!)...

je vais essayer de lui "vendre" la solution 1 caractère...

Edit : si je puis me permettre, Roger, la soluce de Pierre-Jean me convient mieux car les lettres sont triées dans la proposition de choix. En effet, il y a un ordre dans la table.

Un très grand MERCI à vous deux, tout cela est de la belle ouvrage...

Bises

C@thy
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Tirage au sort

Re

Salut ROGER (je regarderais votre travail un peu plus tard)

Bises C@thy
Vois si cette adaptation peut te convenir
 

Pièces jointes

  • Tirage2.xls
    53.5 KB · Affichages: 43
  • Tirage2.xls
    53.5 KB · Affichages: 47
  • Tirage2.xls
    53.5 KB · Affichages: 49

ROGER2327

XLDnaute Barbatruc
Re : Tirage au sort

Bonjour à tous.


(...)
non, il n'est jamais trop tard pour bien faire.
(...)
Tant mieux !​


(...)
Cela fonctionne super bien.

Le problème c'est que ça pourrait aussi être des chiffres, de 1 à 26, et là, forcément ça coince car on aurait 2 caractères... mais pas tout le temps.
(...)
Je me doutais bien que le problème posé n'était pas le problème à résoudre... Aussi le code conçu est-il facilement adaptable à ce nouveau problème. J'en ai profité pour tenir compte de ceci :​
(...)
Edit : si je puis me permettre, Roger, la soluce de Pierre-Jean me convient mieux car les lettres sont triées dans la proposition de choix. En effet, il y a un ordre dans la table.
(...)


Mode d'emploi :

  1. Mettre les données en colonne A.
    Les données peuvent être des chaînes alphanumériques quelconques.

  2. Mettre le nombre d'items par tirage en C1.

  3. Mettre le nombre de tirages en D1.

  4. Double-cliquer en C1, D1, ou E1.
    On peut aussi créer un bouton et lui affecter la procédure Module1.tata.


  • Les données sont dans la plage nommée dynamique DAT définie par :
    Code:
    =DECALER(Feuil1!$A$1;1;;MAX(((Feuil1!$A$1:$A$1000)<>"")*LIGNE(Feuil1!$1:$1000))-1;1)
  • Le séparateur d'items est originellement ", " (virgule et espace) : on a l'affichage sous la forme
    Roger, Yy, 2327, 0, 1

    Pour le modifier, faire Alt F11, ouvrir le Module1, et modifier la constante s$. Par exemple, en mettant Const s$ = ".", on obtient l'affichage
    Roger.Yy.2327.0.1

Bonjour à pierrejean.


Bonne journée.


ROGER2327
#6737


Mercredi 4 Phalle 140 (Mnester, confesseur - fête Suprême Quarte)
27 Thermidor An CCXXI, 5,2890h - colsa
2013-W33-3T12:41:37Z
 

Pièces jointes

  • XLD_209591_Tirage_v2.xlsm
    24.3 KB · Affichages: 39
  • XLD_209591_Tirage_v2.xls
    54.5 KB · Affichages: 43

Discussions similaires

Réponses
30
Affichages
2 K
Réponses
2
Affichages
434

Statistiques des forums

Discussions
312 390
Messages
2 087 951
Membres
103 683
dernier inscrit
Cescodelvar