Générer une ligne de nombre random

Fermé
jackwest Messages postés 2 Date d'inscription lundi 28 janvier 2013 Statut Membre Dernière intervention 28 janvier 2013 - 28 janv. 2013 à 19:05
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 3 févr. 2013 à 11:21
Bonjour,



Je suis débutant dans excell 2010, je suis en train de me créer une table qui génère des résultats alléatoires pour un jeu social en ligne que je fais avec mes amis. J' aimerais générer avec un bouton,une ligne de 10 nombres de 1 à 10 trié en ordre croissant , avec un autre bouton, une ligne de 12 nombres de 1 à 12 toujours triés en ordre croissant et avec un autre bouton une ligne de 20 nombres de 1-20 toujours triés de la même façon.Je sais comment créer les boutons et les placer mais je ne sais pas comment activer les macros associés aux boutons.


Merci d' avance pour votre aide.
A voir également:

2 réponses

via55 Messages postés 14498 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 novembre 2024 2 735
28 janv. 2013 à 20:35
Bonsoir,

Voici un code pour tirer 10 valeurs et les trier en ligne 1 de la feuille
A adapter selon les besoins en changeant les valeurs des variables nb et li

Onglet Developpeur Insertion Module
y copier la macro

Sur la feuille créer bouton clic droit visualiser le code mettre dans la sub le nom de la macro à appeler ( ici random1)

Pour 2nd tirage Copier coller la macro en dessous de l'autre
changer le nom (l appeler random2 par ex)
adapter les valeurs des variables

Creer le 2nd bouton etc

Sub random1()
Dim v As Integer
nb = 10 ' nombre de valeurs à tirer
li = 1 'ligne sur laquelle renvoyer les valeurs
' tirage de nb valeurs au hasard
For n = 1 To nb
v = CInt(Int((nb * Rnd()) + 1))
Cells(li, n).value = v 'place chaque valeur dans une cellule de la ligne li de la page
Next

' Classement par ordre croissant des valeurs
For x = 1 To nb - 1
For y = x + 1 To nb
If Cells(li, x).value > Cells(li, y).value Then q = Cells(li, x).value: Cells(li, x).value = Cells(li, y).value: Cells(li, y).value = q
Next y
Next x

End Sub

En esperant que c'est ce que tu voulais

Cordialement
0
la formule ne marche pas ligne 8
0
via55 Messages postés 14498 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 novembre 2024 2 735
2 févr. 2013 à 23:59
?????
Peux tu poster un exemplaire de ton fichier (macro comprise) sur cjoint.com et donner le lien fourni dans un prochain message
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 427
3 févr. 2013 à 11:21
Bonjour à tous les deux

une autre proposition
https://www.cjoint.com/?3BdluYAKR4v

Bonne suite
0