OVH Cloud OVH Cloud

Choisir 100 nombres au hasard parmis 300

9 réponses
Avatar
Louis
Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage simplement...

Merci

9 réponses

Avatar
Jacky
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit dans le message news:

Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage simplement...

Merci


Avatar
panjas
désolé JJ, mais imagine une seconde que tu as 0.132111 et
0.132222

Tu vas avoir pour les deux 132...

Alors vas pas avoir 100 nombres aleatoire different.

Remarque j'ai pas la solution comme ca...

Panjas

-----Message d'origine-----
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit
dans le message news:


Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage
simplement...



Merci



.




Avatar
Modeste
Bonjour,
Simple ???

en supposant les colonnes de A à Z contiennent des données
sinon adapter AA et AB
garanti sans doublon !!!

Sub Macro1()
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("AB1").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C27:R300C27)"
Range("AA1:AB1").Select
Selection.AutoFill Destination:=Range("AA1:AB300"),
Type:=xlFillDefault
Range("AA1:AB300").Select
Application.Calculation = xlManual
Columns("A:AB").Select
Range("AB1").Activate
Selection.AutoFilter
Selection.AutoFilter Field:(, Criteria1:="<0",
Operator:=xlAnd
ActiveWindow.SelectedSheets.PrintPreview
Application.Calculation = xlAutomatic
Selection.AutoFilter
End Sub

;-)))

-----Message d'origine-----
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit
dans le message news:


Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage
simplement...



Merci



.




Avatar
Jacky
Eh oui !
Simple ???
;o))))))))))

JJ

"Modeste" a écrit dans le message news:
e1dc01c3f0bd$788122c0$
Bonjour,
Simple ???

en supposant les colonnes de A à Z contiennent des données
sinon adapter AA et AB
garanti sans doublon !!!

Sub Macro1()
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("AB1").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C27:R300C27)"
Range("AA1:AB1").Select
Selection.AutoFill Destination:=Range("AA1:AB300"),
Type:=xlFillDefault
Range("AA1:AB300").Select
Application.Calculation = xlManual
Columns("A:AB").Select
Range("AB1").Activate
Selection.AutoFilter
Selection.AutoFilter Field:(, Criteria1:="<0",
Operator:=xlAnd
ActiveWindow.SelectedSheets.PrintPreview
Application.Calculation = xlAutomatic
Selection.AutoFilter
End Sub

;-)))

-----Message d'origine-----
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit
dans le message news:


Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage
simplement...



Merci



.




Avatar
Jacky
Oui bien sûr, mais
Qqun aurait-il une astuce pour realiser ce tirage simplement...
Etait la question, je pensais avoir donnée une piste avec:



Un coup d'oeil du coté de Alea()
Bien sûr qu'il y à mieux, je crois que l'on doit faire une part de recherche



personnel, NON ??

Salutations
JJ



"panjas" a écrit dans le message news:
e75d01c3f0bb$c596c990$
désolé JJ, mais imagine une seconde que tu as 0.132111 et
0.132222

Tu vas avoir pour les deux 132...

Alors vas pas avoir 100 nombres aleatoire different.

Remarque j'ai pas la solution comme ca...

Panjas

-----Message d'origine-----
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit
dans le message news:


Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage
simplement...



Merci



.





Avatar
Modeste
Bonsoir,

simple !!!! oui....
et sans doublon !!!!
;O)))))))))
comme réalisé dans la macro ci-avant

une colonne (xx) avec en xx1 =Alea()
puis la formule tirée 300 fois vers le bas.
une colonne (yy) avec en yy1=Rang(xx1;$xx$1:$xx$300)
la formule tirée 100 fois vers le bas
tu obtiens 100 nombres différents compris entre 1 et 300

penser à inhiber le recalcul automatique !!!!!
aprés tu en fais ce que tu veux....
@+
-----Message d'origine-----
=ENT(ALEA()*100) me donne effectivement un nombre entre 1
et 100

Or ce que je souhaite c'est 100 nombres entre 1 et 300...
en eliminant bien sur ceux qui sont deja sortis ( et c'est

bien là mon probleme )


.



Avatar
Jacques Gronier
Bonsoir,
Autre solution, avec la macro complémentaire de Laurent Longe ( morefun) et
la fonction aleas
http://longre.free.fr/pages/telecharge/index.html#Morefun
Bon Courage
Jacques
Jacky wrote:
Eh oui !
Simple ???
;o))))))))))

JJ

"Modeste" a écrit dans le
message news: e1dc01c3f0bd$788122c0$
Bonjour,
Simple ???

en supposant les colonnes de A à Z contiennent des données
sinon adapter AA et AB
garanti sans doublon !!!

Sub Macro1()
Range("AA1").Select
ActiveCell.FormulaR1C1 = "=RAND()"
Range("AB1").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[-1],R1C27:R300C27)"
Range("AA1:AB1").Select
Selection.AutoFill Destination:=Range("AA1:AB300"),
Type:=xlFillDefault
Range("AA1:AB300").Select
Application.Calculation = xlManual
Columns("A:AB").Select
Range("AB1").Activate
Selection.AutoFilter
Selection.AutoFilter Field:(, Criteria1:="<0",
Operator:=xlAnd
ActiveWindow.SelectedSheets.PrintPreview
Application.Calculation = xlAutomatic
Selection.AutoFilter
End Sub

;-)))

-----Message d'origine-----
Bonsoir Louis

Par exemple
Remplace les 100 nombres par =ENT(ALEA()*100)
Un coup d'oeil du coté de Alea()

Salutations
JJ

"Louis" a écrit
dans le message news:


Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage
simplement...



Merci



.





Avatar
Daniel.M
À titre de complément,

penser à inhiber le recalcul automatique !!!!!


Tu peux fixer les valeurs de Rnd() (une fois générée, par .Value = .Value) et
éviter ainsi de change le mode de calcul.

Salutations,

Daniel M.

Avatar
Clément Marcotte
Bonjour,

Pour choisir 100 numéros parmi 300 et les afficher en colonne a.
(Avec un "détournement" de l'objet Dictionary de la bibliothèque
Scripting)

Sub centlignes()
Dim tableau As Object, i As Integer
Dim numero As Integer, a As Variant
Randomize (Timer)
Set tableau = CreateObject("scripting.dictionary")
On Error GoTo wobec
i = 0
Do Until i > 99
i = i + 1
numero = Int(300 * Rnd(1)) + 1
tableau.Add numero, i
Loop
a = tableau.keys
For i = 0 To tableau.Count - 1
Cells(i + 1, 1) = a(i)
Next
Exit Sub
wobec:
Select Case Err.Number
'Quand on essaie de mettre deux fois le même nombre (numero)
'(La même clef pour l'objet dictionnary), l'erreur 457 est générée
'On annule le nombre choisi et on recommence
Case 457
i = i - 1
Resume Next
Case Else
End Select
End Sub

"Louis" a écrit dans le message
de news:
Bonjour,
j'ai un tableau excel avec 300 lignes remplies.
Je voudrais en selectionner 100 au hasard
Qqun aurait-il une astuce pour realiser ce tirage simplement...

Merci