Pour faire un tirage
Résolu/Fermé
A voir également:
- Pour faire un tirage
- Tirage au sort excel aléatoire sans doublon - Forum LibreOffice / OpenOffice
- Tirage aléatoire sans doublon : de plus en plus fort ... ! ✓ - Forum Excel
- Historique tirage euromillion excel - Forum Excel
- Formule "alea entre bornes" sans doublon. - Forum Excel
- Tirage loto 5/90 - Forum Excel
5 réponses
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
21 déc. 2008 à 01:55
21 déc. 2008 à 01:55
Salut,
Tu veux faire quoi exactement ?
Dans un premier temps, si je comprends bien !, tu remplis une table1 avec n personnes (N°, NOM, PRENOM) Ok!
jusqu'ici pas de problème.
Après tu veux faire un tirage au sort et remplir une autre table vide ?
Du style N°3 DUPONT table1 à eu le numéro 12 et doit donc être N°12 DUPONT dans table2 ?
Après tu fais quoi avec table2 car si c'est pour l'effacer à chaque tirage, ce n'est pas la fonction d'une base de données
garde plutôt ta table1 et fais un tirage au sort dans un tableau temporaire.
A plus
Tu veux faire quoi exactement ?
Dans un premier temps, si je comprends bien !, tu remplis une table1 avec n personnes (N°, NOM, PRENOM) Ok!
jusqu'ici pas de problème.
Après tu veux faire un tirage au sort et remplir une autre table vide ?
Du style N°3 DUPONT table1 à eu le numéro 12 et doit donc être N°12 DUPONT dans table2 ?
Après tu fais quoi avec table2 car si c'est pour l'effacer à chaque tirage, ce n'est pas la fonction d'une base de données
garde plutôt ta table1 et fais un tirage au sort dans un tableau temporaire.
A plus
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
23 déc. 2008 à 13:36
23 déc. 2008 à 13:36
J'ai compris mais je maintiens qu'il serait plus judicieux de ne travailler qu'avec une seule table.
Par contre légèrement différente. Je m'explique :
Pour moi, mon idée vaut ce qu'elle vaut, on pourrait partir sur une table ACHATS du style :
ACHATS(A_numero, A_nom, A_prenom, A_montant, A_ticketdeb, A_ticketfin)
(je n'ai pas mis les types ils sont évidents)
Tu dois te demander ce que sont mes deux champs A_ticketdeb & A_ticketfin, en fait là est toute l'idée, notre algo pourrait se dérouler comme suit :
1.Initialisation du tirage
on crée une table ACHATS vide
premier ticket index = 1
2.Achat effectuée par une personne
Ajout dans la base nom,prenom, montant ,ticketdeb et ticketfin calculés comme suit
ticketdeb = index ; ticketfin = 5*montant + index - 1
on change notre valeur d'index pour l'acheteur suivant --> index = 5*montant + index
retour début 2
3.fin du mois tirage du numéro
on fait un select sur la base du style
SELECT A_nom FROM ACHATS WHERE
A_ticketdeb <= numero AND A_ticketfin >=numero ;
Et voilà on sort le gagnant
Notre table ressemblerait à quelquechose du style :
1----DUPONT---- Henri-----10.00----1----50
2----MARTIN----Viviane----50.00----51----300
3----TARTANPION----Roger----23.00----301----415
etc ....
On peut même avoir une personne avec plusieurs achats à des dates différentes et des numéros relativement éloignés
127---DUPONT----Henri-----27.00----12456----12590
Dis-moi ce que tu en penses mais cela éviterait une deuxième table super lourde et puis quoi de plus simple que de n'en gérer qu'une.
A plus
Par contre légèrement différente. Je m'explique :
Pour moi, mon idée vaut ce qu'elle vaut, on pourrait partir sur une table ACHATS du style :
ACHATS(A_numero, A_nom, A_prenom, A_montant, A_ticketdeb, A_ticketfin)
(je n'ai pas mis les types ils sont évidents)
Tu dois te demander ce que sont mes deux champs A_ticketdeb & A_ticketfin, en fait là est toute l'idée, notre algo pourrait se dérouler comme suit :
1.Initialisation du tirage
on crée une table ACHATS vide
premier ticket index = 1
2.Achat effectuée par une personne
Ajout dans la base nom,prenom, montant ,ticketdeb et ticketfin calculés comme suit
ticketdeb = index ; ticketfin = 5*montant + index - 1
on change notre valeur d'index pour l'acheteur suivant --> index = 5*montant + index
retour début 2
3.fin du mois tirage du numéro
on fait un select sur la base du style
SELECT A_nom FROM ACHATS WHERE
A_ticketdeb <= numero AND A_ticketfin >=numero ;
Et voilà on sort le gagnant
Notre table ressemblerait à quelquechose du style :
1----DUPONT---- Henri-----10.00----1----50
2----MARTIN----Viviane----50.00----51----300
3----TARTANPION----Roger----23.00----301----415
etc ....
On peut même avoir une personne avec plusieurs achats à des dates différentes et des numéros relativement éloignés
127---DUPONT----Henri-----27.00----12456----12590
Dis-moi ce que tu en penses mais cela éviterait une deuxième table super lourde et puis quoi de plus simple que de n'en gérer qu'une.
A plus
Bonjour,
Je suis désolé du délai mais le temps des Fêtes....
Je tiens à renoveler mon premier commentaire... je suis novice, en fait un sous-novice en Access serait plus approprié!
J'aimerais, et je sais que cela pourra vous jouer sur les nerfs, mais je ne comprends pas ce que INDEX vient faire dans l'histoire. Comment changer la valeur de l'index? Comment faire faire le calcul? Est-ce par "Valeur par défaut" ? Si non comment?
Merci de votre compréhension,
Jacques Larochelle
Je suis désolé du délai mais le temps des Fêtes....
Je tiens à renoveler mon premier commentaire... je suis novice, en fait un sous-novice en Access serait plus approprié!
J'aimerais, et je sais que cela pourra vous jouer sur les nerfs, mais je ne comprends pas ce que INDEX vient faire dans l'histoire. Comment changer la valeur de l'index? Comment faire faire le calcul? Est-ce par "Valeur par défaut" ? Si non comment?
Merci de votre compréhension,
Jacques Larochelle
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
5 janv. 2009 à 21:31
5 janv. 2009 à 21:31
Coucou et bonne année
En fait ma variable "index" correspond au numéro du dernier ticket de tombola affecté
Exemple :
On commence le mois de janvier, aucun achat, table vide, nous avons à dispo tous nos tickets avec évidemment le premier, le numéro 1 (index = 1)
Arrive Mr DUPONT Henri qui achète pour 10 € qui se voit affecté 5 x 10 = 50 numéros de 1 à 50
On enregistre sa transaction + ses numéros de tickets
1----DUPONT---- Henri-----10.00----1----50 (le nouvel index devient le premier ticket libre le 51, index = 51)
Arrive Mme MARTIN Viviane qui achète pour 50 € --> Affectation des numéros 51 à 300
2----MARTIN----Viviane----50.00----51----300 (index = 301)
..........etc
Jour 10 du mois, notre table se remplit tranquillement
dernier enregistrement de la veille
25-----TANGUY----Michael----10.00----1201----1250
On vient de rallumer l'ordi donc nous ne connaissons pas le premier ticket dispo
on regarde donc dans la table le plus grand numéro A_ticketfin, ici 1250, donc le prochain ticket dispo est 1251
index = 1251 et on peut reprendre les enregistrements
Ainsi de suite, fin du mois nos tickets vont de 1 à n, tirage au sort du ticket gagnant T, on scanne la table pour voir l'heureux gagnant où T>ticketdeb et T<ticketfin qui est forcément unique.
On efface la table et on repart pour un tour
J'espère être assez clair, à bientôt
En fait ma variable "index" correspond au numéro du dernier ticket de tombola affecté
Exemple :
On commence le mois de janvier, aucun achat, table vide, nous avons à dispo tous nos tickets avec évidemment le premier, le numéro 1 (index = 1)
Arrive Mr DUPONT Henri qui achète pour 10 € qui se voit affecté 5 x 10 = 50 numéros de 1 à 50
On enregistre sa transaction + ses numéros de tickets
1----DUPONT---- Henri-----10.00----1----50 (le nouvel index devient le premier ticket libre le 51, index = 51)
Arrive Mme MARTIN Viviane qui achète pour 50 € --> Affectation des numéros 51 à 300
2----MARTIN----Viviane----50.00----51----300 (index = 301)
..........etc
Jour 10 du mois, notre table se remplit tranquillement
dernier enregistrement de la veille
25-----TANGUY----Michael----10.00----1201----1250
On vient de rallumer l'ordi donc nous ne connaissons pas le premier ticket dispo
on regarde donc dans la table le plus grand numéro A_ticketfin, ici 1250, donc le prochain ticket dispo est 1251
index = 1251 et on peut reprendre les enregistrements
Ainsi de suite, fin du mois nos tickets vont de 1 à n, tirage au sort du ticket gagnant T, on scanne la table pour voir l'heureux gagnant où T>ticketdeb et T<ticketfin qui est forcément unique.
On efface la table et on repart pour un tour
J'espère être assez clair, à bientôt
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mikebzh
Messages postés
127
Date d'inscription
samedi 20 décembre 2008
Statut
Membre
Dernière intervention
11 mars 2009
28
10 janv. 2009 à 17:22
10 janv. 2009 à 17:22
Bonjour
Pas de nouvelles ?
J'ai du t'embrouiller avec mon charabia, alors j'ai eu une petite idée, dans un premier temps pourquoi vouloir acheter et piloter une formule 1 alors que l'on possède un vélo dans le garage (c'est beau !!)
J'espère que tu as excel et va voir mon petit fichier sans aucun code (deux trois petites formules)
http://www.cijoint.fr/cjlink.php?file=cj200901/cijYKHrUeO.xls
Tiens moi au courant, a bientôt.
Pas de nouvelles ?
J'ai du t'embrouiller avec mon charabia, alors j'ai eu une petite idée, dans un premier temps pourquoi vouloir acheter et piloter une formule 1 alors que l'on possède un vélo dans le garage (c'est beau !!)
J'espère que tu as excel et va voir mon petit fichier sans aucun code (deux trois petites formules)
http://www.cijoint.fr/cjlink.php?file=cj200901/cijYKHrUeO.xls
Tiens moi au courant, a bientôt.
22 déc. 2008 à 15:22
Alors,
1. J'entre les noms dans la première base de données
2. Je rentre le montant de l'achat dans la première base de données
3. Le nom s'inscrit autant de fois que le nombre de chances de gagner. Ex. j'ai acheté pour 43$ alors j'ai 215 chances de gagné... donc mon nom est écrit automatiquement 215 fois dans la deuxième base de donnée. Ainsi de suite pour tous les acheteurs et acheteuses.
4. Un nombre est tité au hasard entre le premier enregistrement et le dernier. Et le gagnant est...
Suis-je puis clair? Merci infiniement de votre aide
Jacques Larochelle