Tirage aléatoire et loterie

gjun

XLDnaute Nouveau
Bonjour, je suis nouveau ici et débutant en VBA

j'ai besoin d'aide, ci-dessous mon programme
je dois programmer, en VBA, une loterie constituée d'une grille Nombres (B5:C25) . faire un tirage sans répétition d’une combinaison de 6 chiffres (numérotés entre 1 et 42). La loterie doit permettre de sélectionner la combinaison en cliquant dans des cellules d’une feuille Excel.

Détails de la loterie:
1. Afficher, dans une plage de données, les 42 nombres disponibles pour la combinaison.
2. Permettre le choix des nombres sélectionnés par l’usager par un click sur le nombre directement dans la grille.
3. Un nombre est sélectionné, (un seul à la fois et sans doublons) tant qu’il n’y en a pas six de sélectionnés.
4. Lorsqu’un nombre est sélectionné, la couleur d’arrière-plan de la cellule qu’il occupe change pour rouge, et le nombre est ajouté dans la grille Groupe (B3:B8).
5. Les nombres dans la grille Groupe sont affichés en ordre croissant.


Si quelqu'un peu m'aider juste pour le début ce serait gentil
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Tirage aléatoire et loterie

Re

et pourtant le projet VBA est verrouillé par un mot de passe

Cela m'étonne qu'un prof propose un exercice tout en diffusant le corrigé de celui-ci.

Voici de quoi aller plus loin

Je te laisse tester
(Tu peux tester sur ta première pièce jointe)

PS: je m'étonne que tu n'es pas de questions en lisant ce code VBA si tu es débutant en VBA :confused:
Code:
Sub tirage()
 'adapation d'un code original de Lii
 Dim d, i&, j&, f$
 f = "=COUNTA(R[-17]C:R[-2]C)-SUMPRODUCT(IF(R[-17]C:R[-2]C<>"""",1/COUNTIF(R[-17]C:R[-2]C,R[-17]C:R[-2]C)))"
    Set d = CreateObject("Scripting.Dictionary")
    Application.ScreenUpdating = False
    [E15:E20].Interior.ColorIndex = xlNone
    Randomize 127854
    Do
    n = Int(42 * Rnd + 1)
    If Not d.Exists(n) Then d.Add n, n
    Loop Until d.Count = 42
    a = d.keys
    For i = 0 To 5
        Cells(i + 15, 5) = a(i)
    Next i
    'ajout marquage/comptage doublons
    coldup [E5:E20]
    With [E22]
        .FormulaArray = f
        .Value = .Value
    End With
End Sub
Code:
Sub coldup(p As Range)
Dim c As Range, col As Collection
Set col = New Collection
On Error Resume Next
For Each c In p
    If Not IsEmpty(c) Then
    col.Add c, CStr(c)
    If Err <> 0 Then c.Interior.Color = RGB(255, 255, 0): Err.Clear
    End If
Next c
Set col = Nothing
End Sub
 

jeanpierre

Nous a quitté
Repose en paix
Re : Tirage aléatoire et loterie

Bonsoir le fil,

Ce ne sont pas des questions qu'il faut attendre mais plutôt des explications qu'il faut donner, une à une.....

gjun est très nouveau en Excel.... il ne peut deviner, voire même hypotéser, ce que l'on peut faire....

Des fois je ne comprends pas les interventions, ou plutôt je les comprends...... comprenne qui pourra...

Jean-Pierre
 

Staple1600

XLDnaute Barbatruc
Re : Tirage aléatoire et loterie

Re

gjun
Avec ceci tu comprends mieux ?

Code:
Sub exemple_simple()
Dim i As Integer, n As Integer, numeros As String
Randomize 129845
[COLOR=SeaGreen]' on "tire" 6 numéros[/COLOR]
For i = 1 To 6
n = Int(Rnd() * 42 + 1)
numeros = numeros & n & vbLf
Next i
[COLOR=SeaGreen]'on les affiche[/COLOR]
MsgBox _
        numeros & vbLf & _
        "(sans gestion des doublons)", _
        vbInformation, _
        "Tirage de six numeros"
End Sub
PS: bonsoir jeanpierre
Comme je le disais plus bas, j'attends que la curiosité de gjun s'exprime et que ses questions
fusent.

Puisque c'est un exercice et que nous sommes en juin, je présuppose que gjun n'est pas un parfait novice sous Excel et VBA.
 
Dernière édition:

jeanpierre

Nous a quitté
Repose en paix
Re : Tirage aléatoire et loterie

Re,

Je ne peux être d'accord avec ta réponse.....

Les jeux de piste il y en a des milliers, voire plus, sur Internet.... Ici, il y a une question de posée, soit on répond, soit on ne répond pas..... mais on ne joue pas au chat et la souris....

Et si l'on répond on essaie, autant que faire se peut, de bien expliciter la réponse..... Il n'est pas la peine de noyer davantage quelqu'un qui n'y connait encore rien. Les artifices c'est bien mais le 14 juillet....

Jean-Pierre
 

Staple1600

XLDnaute Barbatruc
Re : Tirage aléatoire et loterie

Re

Ce n'est pas un jeu de piste

Mais une invitation à destination de gjun

Une invitation à partager ma philosophie
(Je fus aussi un newbie sous Excel, et c'est à force de curiosité, d'essais/erreurs, de moult heures de lecture (papier/sur le net/sur XLD), de tests sur des formules, des macros, que je ne le suis plus.)

Mes réponses sont donc des invitations à aller voir plus loin par soi-même.
Et si des difficultés apparaissent alors c'est avec plaisir que je répondrai aux questions.

Maintenant chacun est libre de refuser cette invitation.

PS: je ne réponds pas directement en fournissant une solution (que j'ai depuis un bail déjà) puisque gjun stipule que c'est un exercice.
Je ne vois donc pas l'intérêt de répondre à la question en son entier.
D'autant plus que c'est son souhait:
Si quelqu'un peu m'aider juste pour le début ce serait gentil

gjun: entre les formules de phlaurent55 et les différents codes que je t'ai proposé, tu dois avoir avancé quelque peu non ?
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 755
Membres
103 945
dernier inscrit
Rémi