Tirage aléatoire 5000 sur 10'000

Résolu/Fermé
Xin - 14 déc. 2011 à 21:12
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 19 déc. 2011 à 20:17
Bonjour,

Je suis en train de faire un travail d'étude et je ne suis pas très calé en Excel...

Bref, j'aimerais savoir comment faire sur Excel pour réussir à choisir 5000 prénoms sur 10'000 que j'ai à ma disposition aléatoirement.

Etant donné que ce ne sont pas des chiffres, j'ai pensé à mettre =NBVAL pour sélectionner toutes les cases... mais ça va me sélectionner QU'UNE seule adresse aléatoirement... alors que j'en aimerais 5000 sur 10'000.

Et recopier tous les noms entre guillemets dans la formule.... humm... non merci lool ^^

Merci pour vos réponses =)

Xin

3 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
15 déc. 2011 à 18:02
Bonjour,
Peut-être un peu tard !!
Sub Tirage5000()
Dim B(10000) As Boolean
Dim Nb As Integer, Tirage As Integer
    Randomize (Timer)
    While Nb < 5001
        Tirage = Int((10000 * Rnd) + 1)
        If Not B(Tirage) Then
            B(Tirage) = True
            Nb = Nb + 1
            Sheets("Feuil2").Cells(Nb, 1) = Sheets("Feuil1").Cells(Tirage, 1)
        End If
    Wend
End Sub
Adapter les noms des feuilles.
A+
0
xinoux Messages postés 3 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 19 décembre 2011
18 déc. 2011 à 15:01
Hello Lermite222,

En fait je voulais une formule sur Excel.... C'est possible de faire ça directement sur Excel ?

Merciiiii pour tes infos et ton aide ^^

Xin (xinoux)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
18 déc. 2011 à 17:14
Salut,
Possible sur Excel mais en VBA.
Pas possible en formule.
A+
0
xinoux Messages postés 3 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 19 décembre 2011
18 déc. 2011 à 17:35
A d'accord, et pourrais-tu juste me dire comment faire sur MAC pour avoir VBA ? J'ai la version 2011... Merciiii =)
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 18/12/2011 à 17:58
Il me semble que sur le 2011 pour Mac la possibilité de VBA est de retour?
Alors, Tu tape Alt+F11
Dan l'IDE de VBA (éditeur de macros) tu sélectionne >> Insertion >> Module >> Valider
Dans la fenêtre tu colle le code que je t'ai mis plus haut en adaptant les noms des feuilles, Feuil1 = la feuille où se situe tes 10000 noms, Feuil2 où tu veux que les 5000 noms soient inscrit.
Tu referme l'IDE
Dans la feuille Excel tu colle un bouton (Contrôle ActiveX)
Note: la configuration normale ne te donne pas accès à cette fonction, tu dois..
Clic sur le rond (haut gauche) d'excel.
En bas à droite >> clic sur Option d'Excel
Dans la partie "Standard" cocher la propriété > Afficher l'onglet Développeur.
OK
Et c'est dans ce ruban que tu va avoir >> Insérer.
Revenons à nos moutons.
Le bouton coller sur ta feuille tu double clic dessus.
La partie code de la feuille va s'ouvrir dans l'IDE avec écrit..
Private Sub CommandButton1_Click() 

End Sub


Au milieu tu met Tirage5000 pour avoir
Private Sub CommandButton1_Click() 
    Tirage5000 
End Sub

La première fois ça parait bien compliquer mais tu verras qu'avec le temps ce sera beaucoup plus simple.
Reste plus qu'a cliquer sur le bouton.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
Modifié par Patrice33740 le 18/12/2011 à 18:40
Bonjour,

En supposant que les prénoms se trouve en A1:A10000 (sans doublon), sans VBA, avec plusieurs colonnes, on peut extraire 5000 prénoms aléatoirement (sans doublon).

en B1, à tirer jusqu'en B10000 :
=ALEA()

en C1, à tirer jusqu'en C10000 :
=RANG(B1;B:B;1)

en E1, à tirer jusqu'en E5000 :
=INDEX(A:A;EQUIV(LIGNE();C:C;0))

Cordialement
Patrice
0
xinoux Messages postés 3 Date d'inscription dimanche 18 décembre 2011 Statut Membre Dernière intervention 19 décembre 2011
19 déc. 2011 à 08:08
Ouiiiiiii !!!! Ca marche !!!!! Merci beaucoup Patrice, vous êtes la meilleure !!! ^^ C'est exactement ce que je voulais =) Trop bien !

Bonne journée à vous
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
19 déc. 2011 à 20:17
De rien

Patrice (pas Patricia !!!)
0