programme pour tirage au sort d'une tombola

fbesson

XLDnaute Nouveau
bonjour
je suis en train d'organiser une tombola avec principe suivant:
- 200 lots
- 200 cartons vendus => 1 lot gagnant par carton
- 15 cases par carton

Je souhaite éviter un tirage au sort de 3 heures qui lasse tout le monde (lot 1 pour carton A, puis case x du carton A; et ainsi de suite...)

Existe t'il un programme permettant d'attribuer immédiatement (ou très rapidement) chaque lot à 1 carton (de manière aléatoire) et de déterminer (de manière aléatoireégalement) lacase gagnate de ce carton?

Merci d'avance de votre aide
 

pierrejean

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

bonjou fbesson

et bienvenue sur XLD

On peut supposer que tu souhaites creer tes cartons avec Excel et que la liste des lots ainsi que la forme des cartons sera indiquée dans le fichier
Dans ce cas tu le postes ici et un forumeur se fera surement un plaisir de te pondre un programme
 

fbesson

XLDnaute Nouveau
Re : programme pour tirage au sort d'une tombola

bonjour pierrejean
pas tout à fait
J'ai des cartons en papier (ou planches) sur lesquels se trouvent 15 cases à vendre
1 carton complet = a lot garanti

J'ai autant de lots que de planches de tombola

Ce que j'ai en tête: un fichier excel avec
- 1 colonne "lots" avec la liste de tous les lots 1 à 200
- 1 colonne "planches de tombola" avec des n° de 1 à 200
- 1 colonne case gagnante
La "routine" doit affecter aléatoirement en 1 clic :
- lot 1 => planche 34 + case 13
- lot 2 => planche 184 + case 2
- lot 3 => planche 142 + case 15
- lot 4 => planche 89 + case 7
- lot 5 ........ etc

J'espère avoir mieux décrit mon besoin

Merci de ton aide
 

pierrejean

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

bonjour

Et bien voila !!

La difficulté est rarement de trouver la solution , plus souvent d'avoir un bon énoncé
 

Pièces jointes

  • fbesson.zip
    11.7 KB · Affichages: 601
  • fbesson.zip
    11.7 KB · Affichages: 602
  • fbesson.zip
    11.7 KB · Affichages: 621

fbesson

XLDnaute Nouveau
Re : programme pour tirage au sort d'une tombola

bonjour
cela m'a l'air excellent!
J'ai cependant fait un essai de tirage et je m'aperçois que j'ai plusieurs fois la même planche=> problème car cela signifie que des planches n'auront pas de lot
Y a t'il une solution?
Merci encore
 

pierrejean

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

Re

Effectivement il y avait une erreur dans la macro

C'est réparé

Teste bien et dis-moi
 

Pièces jointes

  • fbesson.zip
    11.7 KB · Affichages: 713
  • fbesson.zip
    11.7 KB · Affichages: 715
  • fbesson.zip
    11.7 KB · Affichages: 738

zeusmen

XLDnaute Nouveau
Re : programme pour tirage au sort d'une tombola

bonjour pierre
votre programme m'interesse j'aimerais savoir comment faire pour inscrementer les numero et comment lancé le program pour qu'il puis debuter le tirage au sort
j'utilise office 2003
merci
 

pierrejean

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

bonjour zeusmen

et bienvenue sur XLD

Je ne comprend pas ce que tu veux dire par:
Incrementer les numeros

par ailleurs pour debuter le tirage au sort il suffit de cliquer sur le bouton Tirage

Ps: Le tutoiement est la coutume sur ce forum
 

ROGER2327

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

Bonjour à tous
Une proposition pour accélérer l'exécution de la procédure :
Code:
[COLOR="DarkSlateGray"]Sub tirage()
Dim planches As New Collection, n As Long, x As Long
   Randomize
   For n = 1 To 200
      planches.Add Item:=Array(n, Int((15 * Rnd) + 1))
   Next n
   Randomize
   For n = 200 To 1 Step -1
      x = Int((n * Rnd) + 1)
      Cells(n + 1, 2).Resize(1, 2) = planches(x)
      planches.Remove x
   Next n
End Sub[/COLOR]
ROGER2327
 

ROGER2327

XLDnaute Barbatruc
Re : programme pour tirage au sort d'une tombola

Re...
Une remarque sur l'utilisation de Randomize.
Si l'on veut faire un tirage aléatoire en utilisant la fonction Rnd() et que l'on souhaite utiliser Randomize pour initialiser la fonction Rnd(), il faut placer Randomize AVANT le début de la boucle.
ROGER2327
 

Lii

XLDnaute Impliqué
Re : programme pour tirage au sort d'une tombola

Salut,

il me semble que "Dictionary" est plus rapide que "NewCollection" du moins dans l'exemple joint :
Code:
Private Sub tirage()
    Set d = CreateObject("Scripting.Dictionary")
    Randomize
    Do
        n = Int(2000 * Rnd + 1)
        If Not d.Exists(n) Then d.Add n, n
    Loop Until d.Count = 2000
    a = d.keys
    For i = 0 To d.Count - 1
        Cells(i + 2, 2) = a(i)
    Next
End Su
Ajout : ton code Roger semble plus efficace ?
 

Pièces jointes

  • NewCollection ou Dictionary.zip
    9.4 KB · Affichages: 220
Dernière édition:

Statistiques des forums

Discussions
312 194
Messages
2 086 069
Membres
103 110
dernier inscrit
Privé