"Bib" a écrit :
solution Macro
En colonne A tes données
En colonne B le choix
Je te propose ce code :
Columns("B:B").Clear
For i = 1 To 50
Range("B" & Int((500 * Rnd) + 1)) = 1
Next
l'exécution du code mets aléatoirement un chiffre 1 colonne B en regard
d'une donnée colonne A sur 50 d'entre elles
Reste à filtrer ou trier pour les regrouper
Une solution dis moi !!!!!
> Parmi un ensemble de données (environ 500 unités) je cherche à en tirer 30
cela signifierait donc qu'on ne doit tirer qu'une seule fois la même
valeur
On pourrait dans ce cas partir des suggestions précédentes mais aussi
simplement
on court le risque d'avoir deux fois la même valeur.
Aussi je te suggérerais de mettre =alea() dans la colonne adjacente
aux 500 items sélectionnés et de trier
les deux colonnes sur la colonne où tu as mis alea().
Comme ca le hasard déterminera un choix sur les 30 premiers obtenus!.
--
lSteph
désolé (j'ai mal vu) FFO en lisant ton post , on propose effectivement
la même chose , toi en VBA et moi en formule..
--
lSteph
> > possible sous excell, et si oui quel fonction doit on utiliser.- Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
Pas de mal ta démarche était louable
Il est bon d'avoir un oeil critique sur des propositions suceptibles
d'imperfection et les miènnes n'en sont pas exempt
Au plaisir
> Il est bon d'avoir un oeil critique sur des propositions suceptibles
> d'imperfection et les mi�nnes n'en sont pas exempt
Notamment la derni�re... !
L'instruction
Range("B" & Int((500 * Rnd) + 1)) = 1
n'est pas exempte d'un tirage de doublons (quasiment � tous les coups !) et donc
d'un nombre de fois 1 < au 50 tirages demand�s et donc....
Etc'
--
lSteph
On 21 oct, 08:10, "Caetera" <EtiennePloufCahé@wanadoo.fr> wrote:
> "FFO" <F...@discussions.microsoft.com> a écrit dans le message de news:
> 27B5DA71-6358-4926-AF8D-94A81E0F0...@microsoft.com...
>
> > Il est bon d'avoir un oeil critique sur des propositions suceptibles
> > d'imperfection et les miènnes n'en sont pas exempt
>
> Notamment la dernière... !
>
> L'instruction
> Range("B" & Int((500 * Rnd) + 1)) = 1
> n'est pas exempte d'un tirage de doublons (quasiment à tous les coups !) et donc
> d'un nombre de fois 1 < au 50 tirages demandés et donc....
>
> Etc'
Tout à fait d'accord!
et tu peux même l'écrire comme cela ca reste.
--
LSteph
Sub Aléatoire()
'd'après L Longre
Columns(2).Clear
Dim Arr(1 To 500, 1 To 1) As Integer
Dim i As Integer, J As Integer, K As Integer
For i = 1 To 500
Arr(i, 1) = Cells(i, 1)
Next i
Randomize Timer
For i = 1 To 30
J = Int(Rnd * (501 - i)) + 1
K = Arr(i, 1)
Arr(i, 1) = Arr(J, 1)
Arr(J, 1) = K
Next i
[b1:b30] = Arr
End Sub
On 20 oct, 18:11, "Jacky" <Dup...@marcel.fr> wrote:
> http://www.cijoint.fr/cjlink.php?file=cj200910/cijs9J8ung.xls
Effectivement avec ma solution des doublons en perspective
Mais comme ceci plus de souci :
Columns("B:B").Clear
For i = 1 To 50
Ligne = Int((500 * Rnd) + 1)
Do While Tirage Like "*/" & Ligne & "/*" = True
Ligne = Int((500 * Rnd) + 1)
Loop
Range("B" & Ligne) = 1
Tirage = Tirage & "/" & Ligne & "/"
Next
Qu'en penses tu ?????
La macro ne sortira pratiquement jamais la valeur 1 donc... quand on fera un
filtre sur les 1 (colonne B), comme il n'y en aura pratiquement jamais 50, on ne
sortira pratiquement jamais 50 valeurs de la col A
Teste...
Etc
Sans �tre forc�ment d'accord sur la m�thode (mais �a...), le r�sultat
correspondra bien � la question !
Etc
Lire : "La macro ne sortira pratiquement jamais 50 fois la valeur 1"
Pas parlé de filtre mais de tri! qu'il commencent à 3 ou 51
n'empêchera pas d'avoir les 30 premiers!
@+
On 21 oct, 14:42, "Caetera" <EtiennePloufCahé@wanadoo.fr> wrote:
> "LSteph" <gmlst...@gmail.com> a écrit dans le message de news:
> 66b7b6b2-1695-441f-96b8-c5300ca73...@k26g2000vbp.googlegroups.com...
>
> >...et donc..
> >..bien là concrètement cela n'empeche absolument pas de faire ce tri
> >Excel fera quand même un choix "apparemment" arbitraire.
Je m'étonne que, dans ce fil, il n'ait été fait aucune mention de la
fonction ALEAS (avec s) que l'on peut trouver dans le recueil de fonctions
MOREFUNC (téléchargeable) de Laurent Longre. Cette fonction permet de sortir
des séries aléatoires sans doublons.
Jean
"Bib" <B...@discussions.microsoft.com> a écrit dans le message de
news:D59BF04C-63B0-4476...@microsoft.com...