Tirage de tombola excel

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

Lulu62

XLDnaute Nouveau
Bonjour,

Pour un projet philanthropique, je réalise une tombola et je souhaiterais faire le tirage au sort avec excel.
Malheureusement je ne m'y connais pas trop et je galère un peu.
Pour ma tombola je vends 300 et je fais gagner 150 tickets.
Grâce un programme VBA, j'ai pu réaliser des tirages au sort.
Maintenant je souhaiterais faire en sorte que en face de chaque numéro de ticket ça marque s'il est gagnant ou perdant en fonction du tirage au sort qui a été réalisé.
J'ai essayé avec un SI mais cela ne fonctionne pas.
Quelqu'un pourrait-il m'aider ?
 

Pièces jointes

Bonjour,

Suite à mon tirage au sort, j'ai déjà mis quelques lots dans mon tableur. J'aimerais, s'il est possible, que les lots soit également tirés au sort mais je ne vois pas vraiment comment faire.
Est ce que quelqu'un saurait ?

Merci 🙂
 

Pièces jointes

Bonjour.
Dans le module de l'objet Worksheet de la feuille :
VB:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Dim Tablo(1 To 46, 1 To 25), TLots(), L As Long, C As Long, TAléa() As Long, P As Long, N As Long
   If Target.Column < 22 Then Exit Sub
   If MsgBox("Un nouveaau tirage va être effectué", vbOKCancel + vbInformation, _
      "Tombola") = vbCancel Then Exit Sub
   TLots = Me.[D56].Resize(Me.[D1056].End(xlUp).Row - 55).Value
   ReDim TAléa(1 To 700 - 400)
   Randomize
   For P = 1 To UBound(TAléa): TAléa(P) = P: Next P
   For P = UBound(TAléa) To 2 Step -1
      C = Int(Rnd * P) + 1: N = TAléa(C): TAléa(C) = TAléa(P): TAléa(P) = N
      Next P
   For P = 1 To UBound(TAléa)
      N = TAléa(P)
      L = (N - 1) Mod UBound(Tablo, 1) + 1
      C = ((N - 1) \ UBound(Tablo, 1)) * 3 + 1
      Tablo(L, C) = N + 400 ' Corrigé
      If P <= UBound(TLots, 1) Then
         Tablo(L, C + 1) = "Gagné": Tablo(L, C + 2) = TLots(P, 1)
         L = (P - 1) Mod UBound(Tablo, 1) + 1
         C = (P - 1) \ UBound(Tablo, 1) + 22
         Tablo(L, C) = N + 400 ' Corrigé
      Else: Tablo(L, C + 1) = "Perdu": End If: Next P
   Me.[A2:Y47].Value = Tablo
   End Sub
Attention j'ai oublié de rajouter à la sortie les 400 aux numéros, raisonnés à partir de 1 dans le code.
 
Dernière édition:
Bonjour,
Je ne m'y connais pas très bien dans tout ce qui est VBA et macro du coup je comprends pas vraiment à quoi correspond ton programme.
Est-ce qu'il correspond au tirage des numéros gagnants pour dire au 300 numéros s'ils sont gagnants ou perdants ou si c'est pour le tirage des lots au sort ?
 
Bonjour.
Il fait les deux en même temps, vu que le nombre de gagnants ne saurait être qu'égal au nombre de lots à gagner, il me semble.
Le code étant mis dans le module de l'objet Worksheet représentant la feuille concernée, le tirage est proposé si on sélectionne une cellule au delà des groupes de 3 colonnes. mais on pourrait aussi le faire au clic sur un bouton ActiveX.
Remarque : Les numéros gagnants pourraient aussi être mis en face de ces lots, justement.
Et j'ai récemment lu quelque part que, légalement, un talon devait être gardé avec le nom de la personne ayant acheté le ticket.
Cela pourrait se gérer aussi, y compris de ne tirer au sort que les numéros des tickets effectivement achetés …
 
- 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
13
Affichages
4 K
Réponses
3
Affichages
1 K
Réponses
2
Affichages
2 K
Réponses
4
Affichages
1 K
Réponses
16
Affichages
3 K
Retour