| ||||||||
Petit astucien | Bonsoir à tous et mes voeux pour 2005 à vous et vos proches,
je vous expose mon problème:
Je voudrais effectuer une recherche aléatoire à partir d'une liste définie et non continue de chiffres et de lettres.
(ex: 1 2 4 6 8 9 10 15 tata titi toto etc...)
puis selon ce résultat effectuer une autre recherche aléatoire à partir d'une autre liste définie.
soit: (A1:A20)= donnée1 (chiffres+lettres)
B1 = résultat de la 1ère recherche aléatoire
(C1:C20)= Donnée2 (chiffres)
D1 = résultat de la 2ème recherche aléatoire
je ne parviens pas à faire fonctionner la fonction alea() même avec uniquement des chiffres.
d'avance merci si vous pouvez me donner un petit coup de pouce
ou même m'éguiller sur une autre fonction.
d'avance merci
@+
Obelix73
Modifié par Obelix73 le 03/04/2005 14:11 | |||||||
Publicité | ||||||||
| ||||||||
![]() | Bonjour,
La fonction ALEA() ne fait pas de recherche, simplement elle crÚe un nombre pseudo-alÚatoire.
Donc si tu veux tirer, dans une liste, une donnÚe de maniÞre alÚatoire, tu joins Ó c¶tÚ une colonne o¨ il y a la fonction ALEA() et, par exemple, tu tries ces 2 colonnes et tu prends la premiÞre donnÚe qui correspond au premier nombre alÚatoire triÚ.
Est-ce clair ? pas s¹r ! il faut que j'aille me coucher... si tu n'as pas compris, c'est de ma faute, je reviendrai demain...
@+ | |||||||
![]() | Bonsoir,
La fonction aleatoire me dÚtermine un tirage "i" de 1 Ó 20
je renvoie le contenu de la cellule ligne "i" colonne 1 en B1
un 2Þme tirage aleatoire me dÚtermine un tirage "i" de 1 Ó 20
je renvoie le contenu de la cellule ligne "i" colonne 3 en D1
Sub Test()
i = Int((20 * Rnd) + 1)
[B1].Value = Cells(i, 1).Value
i = Int((20 * Rnd) + 1)
[D1].Value = Cells(i, 3).Value
End Sub
Ok ? | |||||||
![]() | Re:
Voici une autre solution sans macro.
Elle nÚcessite 4 cellules intermÚdiaires (Ó masquer)
E1 contient "A" (sans guillemet)
E2 contient "C" (idem)
E3 contient =ENT(ALEA()*20+1)
E4 contient =ENT(ALEA()*20+1)
Dans la cellule
B1 Úcrire =INDIRECT(E1&E3)
D1 Úcrire =INDIRECT(E2&E3)
Chaque appui sur la touche F9 gÚnÞre un nouveau tirage...
Ok?
Modifié par galopin01 le 20/01/2005 00:03 | |||||||
Petit astucien | Bonsoir Galopin01,
Merci pour la formule, elle fonctionne parfaitement bien [happy]
Mais mon problÞme rÚside dans le fait que je cherche Ó faire une recherche alÚatoire Ó partir d'une liste dÚfinie de nombres.
soit: A10:A18 nommÚe "donnÚe" dans lequel on trouve(A10=1;A11=4;A12=6;A13=7;A14=10;A15=12;A16=15;A17=22;A18=23)
le rÚsultat (qui doit rester figÚ) s"affichant en A1.
en C1 s'engage alors une autre recherche aleatoire (sans pour autant changer la valeur de A1)
dans une des autres listes dÚfinies de nombres selon le rÚsultat que l'on a obtenu en A1.
si A1=1 C1 recherche dans B10:B30 nommÚe "rÚsultat1"
si A1=4 C1 recherche dans C10:C30 nommÚe "rÚsultat4"
si A1=6 C1 recherche dans D10:D30 nommÚe "rÚsultat6"
si A1=7 C1 recherche dans E10:E30 nommÚe "rÚsultat7"
si A1=10 C1 recherche dans F10:F30 nommÚe "rÚsultat10"
si A1=15 C1 recherche dans G10:G30 nommÚe "rÚsultat15"
ce qui nous donne Ó la fin de l'opÚration 2 nombres
Un en A1 et l'autre en C1.
je suis peut-Ûtre brouillon,
Un vrai casse-tÛte [boom]
mais pourquoi faire simple quand on peut faire compliquer
Merci
@+
| |||||||
![]() | Bonsoir, et les trois autres valeurs ?
(12, 22, 23 ?)
On recherche dans quelle colonnes? | |||||||
Petit astucien | Bonsoir,
les colonnes sont alignÚes les une Ó cotÚ des autres de B10:B18 Ó J10:J18
@+ | |||||||
![]() | Faudrait savoir ?
Tout Ó l'heure c'Útait :
si A1=1 C1 recherche dans B10:B30 nommÚe "rÚsultat1"
si A1=4 C1 recherche dans C10:C30 nommÚe "rÚsultat4"
si A1=6 C1 recherche dans D10:D30 nommÚe "rÚsultat6"
si A1=7 C1 recherche dans E10:E30 nommÚe "rÚsultat7"
si A1=10 C1 recherche dans F10:F30 nommÚe "rÚsultat10"
si A1=15 C1 recherche dans G10:G30 nommÚe "rÚsultat15"
Maintenant c'est B10:B18 Ó J10:J18 ???
Confirmation SVP
| |||||||
![]() | Bonsoir,
þa roupille ?
la rÚponse pour B10:B18 Ó J10:J18
Sub test()
i = Int((9 * Rnd) + 1)
[A1].Value = Cells(i + 9, 1).Value
j = Int((9 * Rnd) + 1)
k = Cells(j + 9, i + 1).Value
[C1].Value = k
End Sub
A+ | |||||||
Petit astucien | Sorry,
j'Útais sur excel
merci la macro
et excuse moi de ne pas t'avoir rÚpondu rapidement
@+ | |||||||
Petit astucien | Bonsoir Galopin01,
avec tout mes remerciements
cela fonctionne
super
encore merci
@+ | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|