Tirage au sort

Bonjour,

j'aimerai faire un tirage au sort parmi 42 noms, et que le résultat apparaisse dans une msgbox après avoir appuyé sur le bouton du tirage.

J'arrive bien a générer des nombres, mais comment les faire correspondre a un des 42 noms?

Merci.

Bonjour kleon,

Je te propose ce fichier Excel :

104exo-kleon.xlsx (7.71 Ko)

C'est pour 8 noms ; à toi d'adapter pour tes 42 noms.

Pour la MsgBox, je te laisse faire aussi.

dhany

Merci,

c'est bon, mais est-il possible de faire ça en VBA, grâce à un bouton, et que le résultat apparaisse dans une MSGBOX?

Si, c'est possible ; laisse-moi du temps : je vais te faire ça.

dhany

Bonjour,

Voici un exemple,

j'ai mit le résultat en colonne H

61kleon-tirage.xlsm (17.09 Ko)

@kleon

Je te propose ce fichier Excel :

72exo-kleon.xlsm (15.58 Ko)

Tu peux au choix cliquer sur le bouton "Tirage"

ou faire Ctrl t

Alt F11 pour voir la macro, puis revenir sur Excel

Si besoin, tu peux demander une adaptation.

Merci de me dire si ça te convient.

dhany

Super,

c'est exactement ca! Merci!

Autre chose,

Est-ce que je peux aller plus loin, en remplaçant les noms par des nombres à 3 chiffres ( pas de suite logique),

et faire apparaître le gagnant chiffre par chiffre, un peu à la manière d'une machine a sous?

Dans ce cas, pas obligé que çà soit dans une msgbox...

Peux-tu donner un exemple plus concret ?

Bonjour, Salut Isabelle !

Une autre méthode :

Sub Tirage42()
    Dim Tbl, k, i%, x%
    Tbl = ActiveSheet.Range("A2").Resize(42).Value
    Randomize
    For i = 1 To 42
        k = Tbl(i, 1)
        x = Int(Rnd * 42 + 1)
        Tbl(i, 1) = Tbl(x, 1)
        Tbl(x, 1) = k
    Next i
    ActiveSheet.Range("D2").Resize(42).Value = Tbl
End Sub

En fait ça consiste à mélanger pour mettre tes noms dans un ordre aléatoire...

Tu n'as pas fourni de fichier, donc à toi de l'établir !

Ta liste de noms doit être en A2:A43, la liste réordonnée aléatoirement sera placée en D2:D43, tu places un bouton auquel affecter la macro (à placer préalablement dans un module standard), et si tu n'en mets pas veille que la feuille soit active au lancement de la macro...

La macro est écrite pour que tu puisses facilement modifier le code comme tu l'entends !

Tu places ta liste ailleurs : tu remplaces A2 par la référence de la première cellule de la liste.

Tu veux le résultat ailleurs également : tu remplaces D2 par la référence de la première cellule de la liste tirée.

Tu veux faire l'opération pour moins ou plus de 42 noms : tu remplaces tous les 42 par le nouveau nombre de membres de ta liste ! Attention, il y en a 4.

Cordialement.

Bah à la place des noms, j'ai çà en B3:B44

447

448

449

450

451

452

453

454

455

456

457

458

459

460

461

462

570

571

572

573

574

575

576

577

578

579

649

650

651

656

657

663

664

665

675

676

677

678

679

680

681

682

Peut-on tirer 1 de ces nombre au sort, en faisant apparaître d'abord la centaine (en G3), puis la dizaine (en H3), puis l'unité (en I3)?

Et pour faire plus "machine à sous", si c'est possible, faire défiler les chiffres avant de s’arrêter sur le bon à chaque fois.

Je sais que c'est tordu comme demande, mais ça serait tellement génial si on pouvait...

@kleon

Je te propose cet autre fichier Excel :

19exo-kleon.xlsm (16.67 Ko)

dhany

Merci "MFerrand",

mais ce code sert à mélanger ma liste de noms si je comprend bien?

En fait je cherche à effectuer un tirage, pour avoir un gagnant, comme "dhany" a très bien su faire dans son fichier.

@kleon

Dans mon fichier, les points de suspension des 3 messages successifs représentent le suspense ! les 3 chiffres mis bout à bout forment le n° de l'élu ; et tu peux vérifier que ce n° à 3 chiffres est bien dans la liste des numéros.

dhany

@kleon

Je te propose cet autre fichier Excel :

Exo kleon.xlsm

dhany

Impressionné par la rapidité, j'aime bien l'idée!

Mais j'imaginais le résultat final comme ça du coup avec les nombres.

10exo-kleon-1.xlsm (19.03 Ko)

Voici la nouvelle version :

12exo-kleon.xlsm (17.05 Ko)

J'ai pas encore vu ton dernier fichier ; je vais le télécharger maintenant.

dhany

C'est ça,

on se rapproche vraiment de la perfection.

En plus, je remarque que mon niveau est vraiment faible quand je vois la simplicité du code....

Autre essai :

13exo-kleon.xlsm (17.74 Ko)

il resterait plus qu'à voir le défilement ! ... mais là, c'est moins évident,

alors j'vais essayer, mais j'te promets rien.

dhany

Je te remercie déjà énormément.

Tu as réussi exactement ce que je souhaitais faire depuis quelques jours,

le défilement ne sera que du bonus!

Essai de défilement n° 1 :

20exo-kleon.xlsm (18.30 Ko)

dhany

C'est super!

le timing, je vais essayer de m'en occuper.

Tu penses qu'il est possible de changer la couleur de fond une fois le nombre complet affiché?

un peu comme si ça clignotait 2-3 fois jaune/bleu, et finir par bleu?

Rechercher des sujets similaires à "tirage sort"