nombres aléatoires différents

  • Initiateur de la discussion Initiateur de la discussion Syl R
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Syl R

Guest
Bonsoir à toutes et tous,

Je vous remercie par avance de vos éclaircissements...

je souhaiterai obtenir dans l'exemple suivant :
pour 10 cellules (A1:A10),
1 nombre aléatoire différent dans chaque cellule.

A bientôt
 
Salut Roland,

Merci beaucoup, simplement un rectificatif, je souhaiterai obtenir des nombres supérieurs à 1 sans avoir à les multiplier par 100, et sans décimale et tous différents biensur !
Cette solution ne me permet pas d'obtenir des nombres différents si j'enlève les décimales, par exemple les résultats obtenus peuvent être

62.001 = 62
62.003 = 62
etc.

encore merci

A bientôt
 
Re

Ceci marche trés bien aussi et ton souhait de ne pas multiplier est exaucer

Roland

disk.gif
 
attention, en utilisant Alea() sans autre précaution, on peut avoir plusieurs fois la même valeur, c'est la définition même de l'aléatoire... J'ai fait un (même 2) fichier pour générer de l'aléatoire sans doublons, mais je ne peux plus le retrouver. Si Celeda passe par là, peut-être retrouvera-t-elle les différents fils
 
Bonsoir le forum

Dix nombres aleatoires de 1 à 100 sans doublons dans A1 à A10

Option Explicit
Sub Aleatoire()

Dim Myvalue As Byte
Dim Colonne As Byte

Myvalue = 100

Randomize

[A1] = Int(Myvalue * Rnd + 1)

For Colonne = 1 To 9

Do
Cells(1, 1).Offset(0, Colonne).Value = Int(Myvalue * Rnd + 1)
Loop Until IsError(Application.Match(Cells(1, 1). _
Offset(0, Colonne), Cells(1, 1).Resize(1, Colonne), 0))
Next Colonne

End Sub

Mytå
 
Oups Re le forum

Excuse Syl_R

la bonne macro de A1 a A10 (l'autre etait de A1 a J1)

Option Explicit
Sub Aleatoire()

Dim Myvalue As Byte
Dim Ligne As Byte

Myvalue = 100

Randomize

[A1] = Int(Myvalue * Rnd + 1)

For Ligne = 1 To 9

Do
Cells(1, 1).Offset(Ligne, 0).Value = Int(Myvalue * Rnd + 1)
Loop Until IsError(Application.Match(Cells(1, 1). _
Offset(Ligne, 0), Cells(1, 1).Resize(Ligne, 1), 0))
Next Ligne

End Sub

Mytå
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
227
Réponses
7
Affichages
344
Retour