Tirage au sort de N nombres sur une liste

Bonjour,

Je me retrouve avec une liste de 200 numéros et je voudrais tirer au sort un nombre N de ces numéros. L'idée est de pouvoir tirer au sort sur la liste un pourcentage N ( 10% par exemple) de nombres définis préalablement sans qu'ils se répètent.

Merci!

Bonjour le forum,

Tirage au sort sans doublon.

863tirage-au-sort.xlsm (19.17 Ko)

Bonjour mbbp,

Merci pour ton aide mais il se trouve que je ne c'est pas comment appliquer ton code à ma situation. Je joint mon fichier pour que tu te fasses une idée plus claire de ce que je veux réussir. Si dans la case pourcentage il y a 10 par exemple, je voudrai extraire 10 % sur les 200 cases de la colonne A (donc 20 numéros) au hasard. Ceci en cliquant sur le bouton "Générer liste".

Merci à nouveau!

207alea.xlsx (12.36 Ko)

Personne a une idée ?

Bonjour,

Sub TiragePourcent()
    Dim T(), n%, i%, x%, tx0$, tx1$, k$
    n = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To n
        tx0 = tx0 & ChrW(i + 32)
    Next i
    n = Int(n / 100 * ActiveSheet.Range("E6"))
    Randomize
    For i = 1 To n
        x = Int(Len(tx0) * Rnd + 1)
        k = Mid(tx0, x, 1)
        tx1 = tx1 & k: tx0 = Replace(tx0, k, "")
    Next i
    ReDim T(n - 1, 0): n = 0
    Application.ScreenUpdating = False
    With ActiveSheet
        .Range("E11:E300").ClearContents
        For i = 1 To Len(tx1)
            x = AscW(Mid(tx1, i, 1)) - 32
            T(n, 0) = .Cells(x, 1)
            n = n + 1
        Next i
        .Range("E11").Resize(n).Value = T
    End With
End Sub

Cordialement.

243merinom-alea.xlsm (22.80 Ko)

Woow, c'est nickel ! Merci beaucoup MFerrand! Une toute petite question par contre, quelle ligne du code je dois modifier pour que la macro prenne des nombres au hasard non par sur toute la colonne A mais sinon de la cellule A9 vers le bas ou sur une plage spécifique? Merci infiniment !!

Là, comme tu l'as vu, on prend la colonne entière, quelle qu'elle soit. Si tu l'allonges ou la rétrécit ça s'adapte...

Si tu veux n'en prendre qu'une sélection entre deux lignes, il faut positionner des paramètres à faire prendre en compte (comme tu l'as fait pour le pourcentage). On introduira la prise en compte de ces paramètres par la macro.

Cordialement.

Re bonjour,

Je reviens te demander de l'aider car je suis bloqué par un petit soucis. En utilisant la macro que tu m'as si gentillement fournie, je génère les nombres aléatoires issu de la liste de numéros de la colonne A qui elle est extraite avec la fonction INDEX et EQUIV d'une autre onglet du classeur. Il se trouve que la liste que je charge n'est pas toujours de la même longueur or la macro prend en compte toutes les cellules contenant une valeur dans la colonne A même si la fonction INDEX renvoi 0. Le pourcentage de numéros dans ma liste ainsi que le tirage au sort par la macro sont donc faussés. Aurais-tu une idée ?

Merci beaucoup MFerrand, bonne fin de journée!

88liste-1-v2-copie.xlsm (105.81 Ko)

Bonjour,

Il faut éviter les renvois de 0, ce qui se fait très bien avec formules... Après, il faut modifier l'évaluation à partir du remplissage de la colonne, ce n'est plus opératoire avec des formules.

On a donc le choix d'un dénombrement par formule (que la macro pourra prélever au départ), et là il faut régler quelques anomalies, si tes données sont textuelles, il faut éviter que certaines échappent et demeurent numériques, cela fausserait les dénombrements...

ou bien on prend la peine de les compter une par une !

Je n'arrive pas je suis nul ! J'ai essayé avec

SI(INDEX(CND!$A$5:$CV$204;LIGNE();EQUIV(E$6;CND!$A$3:$CV$3;1))<>"";INDEX(CND!$A$5:$CV$204;LIGNE();EQUIV(E$6;CND!$A$3:$CV$3;1));"")

mais la macro pend comme même en compte la cellule ..

Rechercher des sujets similaires à "tirage sort nombres liste"