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

jcvalentin

XLDnaute Nouveau
Bonjour,
Je voudrais faire un tirage de tombola pour 1000 tickets numérotés de 1 à 1000 répartit en 100 carnets de 10 tickets pour lesquelles il y aurait 2 ou 3 lots (zone fixe pour le nombre de lot) par carnet sans doublons
Fichier carnet de tombola joint, dans les colonnes gagnant et numéro, il faudrait sortir le numéro et le nom du gagnant correspondant en couleur gras pour chaque carnet
Merci de votre aide
 

Pièces jointes

Re : Tirage Tombolat

Bonjour Roger,
Serait-il possible, mon cher jcvalentin, de donner l'énoncé du problème réel ? Nous y gagnerions tous du temps.
merci Roger pour cette intervention,

je viens de remettre la version2 au post précédent (erreur de fichier dû à mon côté bordélique )😕
concerne le tri des lots suivant leurs valeurs

à+
Philippe
 
Re : Tirage Tombolat

Re…
Bonjour Roger,merci Roger pour cette intervention,

je viens de remettre la version2 au post précédent (erreur de fichier dû à mon côté bordélique )😕
concerne le tri des lots suivant leurs valeurs

à+
Philippe
Votre dernière contribution apporte une présentation radicalement nouvelle du problème, très intéressante si on est certain qu'un lot de 10 tickets est toujours détenu par un porteur. Mais de quoi est-on certain dans ce problème ?
Quoi qu'il en soit, une chose m'intrigue : votre méthode de tirage sans doublon grâce à une colonne auxiliaire avec la formule =ALEA(). Je ne la comprends pas bien. Pouve-vous m'éclairer ? Merci d'avance.​
ROGER2327
#5318


Dimanche 22 Merdre 138 (Ontogénie pataphysique - fête Suprême Première première)
20 Prairial An CCXIX, 5,9056h - fourche
2011-W23-3T14:10:24Z
 
Re : Tirage Tombolat

Re, Bonjour Roger,

j'ai pris ceci en considération
nous en France les gens achète des carnets complet surtout quand la tombola est importante, donc c'est tout a fait normal que le nom sorte plusieurs fois
Quoi qu'il en soit, une chose m'intrigue : votre méthode de tirage sans doublon grâce à une colonne auxiliaire avec la formule =ALEA(). Je ne la comprends pas bien. Pouve-vous m'éclairer ? Merci d'avance.
Voici les explications en pièce jointe

Bonne fin de journée
Philippe
 

Pièces jointes

Re : Tirage Tombolat

Ta solution v2 ne corresponds pas a ce que je désire, par contre ta solution 111.xls pourrait marcher à condition de changer la plage petite valeur pour la ligne 1
EQUIV(PETITE.VALEUR(Lots!$B$2:$B$101;E5);Lots!$B$2:$B$101;0)&" "&RECHERCHEV(EQUIV(PETITE.VALEUR(Lots!$B$2:$B$101;E5);Lots!$B$2:$B$101;0);Lots!$A$2:$C$101;3;0);" ")

la ligne 2 EQUIV(PETITE.VALEUR(Lots!$B$102:$B$201;E5);Lots!$B$1022:$B$201;0)&" "&RECHERCHEV(EQUIV(PETITE.VALEUR(Lots!$B$102:$B$201;E5);Lots!$B$102:$B$201;0);Lots!$A$102:$C$201;3;0);" ")
idem pour la 2 avec 202 301, mais cela ne fonctionne pas
 
Re : Tirage Tombolat

Pas mal ta solution roger (surtout le dvd à carla au tirage).
Mon problème qui ne change pas depuis le début est
on a 100 carnet de 10 tickets de tombola a vendre, les acheteurs peuvent prendre 1,2,3.. ou bien le carnet complet (donc plusieurs nom dans un carnet ou x fois le même nom).
il y a systématiquement 3 gagnants par carnet en tirage au sort donc 300 lots dont beaucoup sont les mêmes.
pour éviter qu'une personne ayant pris tout un carnet au même nom se retrouve au pire avec 3 fois le même lot , j'ai demandé que l'on fasse 3 groupes de lots de même valeur numéroté de 1 à 100 pour le premier gagnant, 101 à 200 pour le deuxième et 201 à 300 pour le troisième. (il est bien entendu que les mêmes lots seront dans un seul groupe)
mon fichier et presque terminé, il me reste le problème de ces lots
 
Re : Tirage Tombola

Re…
(…) Voici les explications en pièce jointe (…)
Merci pour cette explication.

Votre méthode repose d6nc sur l'hypothèse que la fonction ALEA() n'engendre pas de doublon dans la colonne auxiliaire (car si tel est le cas GRANDE.VALEUR (ou PETITE.VALEUR) fournira aussi un doublon).

Or, rien n'est moins sûr que cette hypothèse. Cette fonction renvoie un nombre de longueur finie et par conséquent le nombre de nombres différents qu'elle renvoie est fini.

Appelons N ce nombre de valeurs distinctes que la fonction peut renvoyer.
Si l'on tire P (1<P<=N) nombres avec la fonction, et si on suppose que la fonction ALEA() est de bonne qualité, la probabilité que deux d'entre eux soient égaux ne peut être nulle. Sans entrer dans les détails (voir le premier bachelier tant soit peu scientifique venu pour ces détails), la probabilité pour que les P nombres soient tous différents est

N^-P*factorielle(N)/factorielle(N-P).​

Si 1<P<=N, ce nombre est strictement plus petit que 1. Il est d'autant plus proche de 1 que N est grand et P petit par rapport à N ; et c'est le cas dans notre affaire. C'est pourquoi on peut avoir l'impression, sur quelques milliers, voire quelques millions de tirages, que la procédure fournit des tirages sans doublon.

Mais il reste qu'elle fournira au moins un doublon avec la probabilité

1-N^-P*factorielle(N)/factorielle(N-P)

qui, quoique faible, n'est pas nulle.​

La conséquence en est qu'inéluctablement on trouvera un tirage avec doublon à un moment donné. Dans cent milliards de tirages ou plus, peut-être, mais peut-être aussi lors du prochain tirage. Gênant s'il s'agit d'attribuer le gros lot…

Un solution possible pour écarter ce risque serait d'écrire
Code:
=TRONQUE(ALEA();11)+LIGNE(1:1)/100000000000000
puis de tirer ver le bas, au lieu de
Code:
=ALEA()
.
On pourrait ainsi obtenir jusqu'à 999 nombres tous différents, de la forme
0,xxxxxxxxxxx001
0,xxxxxxxxxxx002

0,xxxxxxxxxxx999
.​
Bonne soirée,

ROGER2327
#5319


Dimanche 22 Merdre 138 (Ontogénie pataphysique - fête Suprême Première première)
20 Prairial An CCXIX, 8,3621h - fourche
2011-W23-3T20:04:08Z
 
Dernière édition:
Re : Tirage Tombolat

Re…
Pas mal ta solution roger (surtout le dvd à carla au tirage).
Mon problème qui ne change pas depuis le début est
on a 100 carnet de 10 tickets de tombola a vendre, les acheteurs peuvent prendre 1,2,3.. ou bien le carnet complet (donc plusieurs nom dans un carnet ou x fois le même nom).
il y a systématiquement 3 gagnants par carnet en tirage au sort donc 300 lots dont beaucoup sont les mêmes.
pour éviter qu'une personne ayant pris tout un carnet au même nom se retrouve au pire avec 3 fois le même lot , j'ai demandé que l'on fasse 3 groupes de lots de même valeur numéroté de 1 à 100 pour le premier gagnant, 101 à 200 pour le deuxième et 201 à 300 pour le troisième. (il est bien entendu que les mêmes lots seront dans un seul groupe)
mon fichier et presque terminé, il me reste le problème de ces lots
Je ne comprends pas votre objection. Si les lots identiques sont dans la même centaine, le détenteur d'un carnet ne peut pas obtenir deux fois le même lot puisque les trois lots affectés à un même carnet sont pris dans des centaines différentes. À moins d'une erreur (toujours possibles…) Si vous obtenez un tirage où deux lots d'un même carnet sont pris dans la même centaine, merci de me le signaler.​
ROGER2327
#5320


Dimanche 22 Merdre 138 (Ontogénie pataphysique - fête Suprême Première première)
20 Prairial An CCXIX, 8,4433h - fourche
2011-W23-3T20:15:50Z
 
Re : Tirage Tombolat

Re Bonjour,

Merci Roger pour les explications claires et précises (comme d'habitude ! )

je retiendrai cette amélioration: =TRONQUE(ALEA();11)+LIGNE(1:1)/100000000000000

pour info, j'ai fait tourner une macro pendant la nuit,avec 65000 lignes contenant =Alea() en colonne A
et un test pour détecter les doublons.
Tout ceci dans une boucle For i = 1 To 1000000 (un million)
Il n'y a eu aucun doublons détectés
Mais je suis conscient que cela aurait pu arriver une ou même plusieurs fois

à+
Philippe
 
Re : Tirage Tombolat

pour roger,
j'ai adopté ta solution plus facile pour moi à mette en place que celle de philippe que je remercie de sa patience, par contre avec 2 lots par carnet tout fonctionne très bien, mais avec 3 lots j'ai des pb sur les premiers carnets, j'ai cheché mais pas trouvé l'erreur
merci
 

Pièces jointes

Re : Tirage Tombolat

Re…
Il y a effectivement une énorme connerie dans le code que j'ai proposé. J'ai la solution : je la rédige demain dans la journée.

À bientôt.​

ROGER2327
#5324


Mardi 24 Merdre 138 (Sainte Purge, sage - femme - fête Suprême Quarte)
22 Prairial An CCXIX, 1,1589h - camomille
2011-W23-5T02:46:53Z
 
Re : Tirage Tombolat

Suite…
Comme promis, voici un classeur corrigé.
Dans la version précédente, une faute de programmation conduisait à ne pas prendre en compte tous les lots. Il en résultait que, lorsque on ajoutait des noms, le nombre de lots pris en compte devenait insuffisant, d'où l'impossibilité de trouver toutes les réponses.

J'ai profité de cette mise à jour pour rationaliser la feuille Gagnant.

À suivre : une version tout VBA (ou moins en ce qui concerne la feuille Carnet).

À bientôt.​
ROGER2327
#5326


Mardi 24 Merdre 138 (Sainte Purge, sage - femme - fête Suprême Quarte)
22 Prairial An CCXIX, 5,9268h - camomille
2011-W23-5T14:13:28Z
 

Pièces jointes

Re : Tirage Tombolat

Re…
J'espère que ça fonctionne correctement cette fois-ci.
Mais je viens de m'apercevoir que certaines de vos formules de la feuille Gagnant sont plutôt folkloriques (Carnet 75, par exemple). Comme j'ai repris vos formules, il convient que vous les vérifiiez. Bon courage !​
ROGER2327
#5329


Mardi 24 Merdre 138 (Sainte Purge, sage - femme - fête Suprême Quarte)
22 Prairial An CCXIX, 7,1392h - camomille
2011-W23-5T17:08:02Z
 
Re : Tirage Tombolat

Suite (et fin ?)
Une version dans laquelle la partie tirage est entièrement écrite en VBA : il n'y a plus de formule.

L'adaptation aux modifications éventuelles de la feuille de saisie se fait en adaptant la fonction ParamTableau :
VB:
Private Function ParamTableau()
Dim origine As Range, dl As Variant, pl&, pc&, nc&, bc&, tc&, lc&, nl&
'——— Paramètres : 
  Set origine = [B7]  'première cellule de données
  dl = "D"            'première colonne de résultats
'Pas du tableau :
  pl = 11     'vertical
  pc = 5      'horizontal
  nc = 3      'nb. de carnets par ligne
'Billets :
  bc = 10     'nb. de billets par carnet
  tc = 100    'nb. de carnets
'Lots :
  lc = [K2].Value   'nb. de gagnants par carnet (de 1 à 3)
  nl = 100    'nb. de lots par série (>= tc)
'—————————————————————————————————————————
  ParamTableau = Array(origine, CLng(Columns(dl).Column - origine.Column), pl, pc, nc, bc, tc, lc, nl)
End Function

Cette version devrait être un peu moins sensible au rafraichissement intempestif de la feuille : il faut obligatoirement utiliser l'un des boutons pour modifier un tirage.

J'ai revu la feuille d'affichage du tableau des gagnants en corrigeant les formules défectueuses. Ce qui n'empêche pas qu'une vérification soit souhaitable…​
ROGER2327
#5330


Mardi 24 Merdre 138 (Sainte Purge, sage - femme - fête Suprême Quarte)
22 Prairial An CCXIX, 8,8953h - camomille
2011-W23-5T21:20:55Z
 

Pièces jointes

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
15
Affichages
2 K
Réponses
4
Affichages
1 K
Réponses
6
Affichages
1 K
L
Réponses
6
Affichages
2 K
L
Retour