1 à 100 positionnés aléatoirement

Z

Zucchero

Guest
Bonjour,

Je cherche un système sous excel capable de placer aléatoirement les chiffres de 1 à 100.
(ex. 1,18,24,36,78...)

Merci de votre aide. Bonne journée. ;)
 

lE0nard

XLDnaute Junior
Bonjour le Forum, bonjour Zucchero,

Une petite piste:
en indiquant par exemple 1 en cellule b1 et 100 en cellule a1 la formule ci dessous te donnera un nombre aléatoire entre 1 et 100.
Il suffit de tirer la formule vers le bas:

ARRONDI(ALEA()*($B$1-$A$1)+$A$1;0)

cette formule peut générer des doublons ; je continue de chercher en pensant qu'il y a mieux!!

a+ surement
 

porcinet82

XLDnaute Barbatruc
Salut Zucchero,

Avec la fonction ALEA et la fonction ENT tu devrais pouvoir t'en tirer. de mémoire (mais reste tout de meme à vérifier) ca doit donner quelque chose du genre :
=ENT(ALEA()*100+1)

la fonction ALEA te renvoie un nombre compris entre 0 et 1 (inclus). tu multiplie donc ce nombre par 100 et tu ajoute 1 pour avoir un nombre entre 1 et 100
la fonction ENT te permet de garder la partie entière de ton nombre

@+
 

Abel

XLDnaute Accro
Bonjour Zucchero, lE0nard,



J'avais la même chose en macro avec le même constat pour les doublons.

Code:
Sub toto()
j = 1
k = 1
For i = 1 To 100
    If i Mod 10 = 0 Then j = j + 1: k = 1
    Cells(k, j) = Int(101 * Rnd + 1)
    k = k + 1
Next i
End Sub

Pour les doublons, je pense qu'il faudra passer par un tableau.

Abel.

Edition :
Oups ! Pardon Porcinet82. Pas rafraichi.

Message édité par: Abel, à: 15/11/2005 13:23
 

andré

XLDnaute Barbatruc
Salut,

Il existe les fonctions ALEA.ENTRE.BORNES() et ENT(ALEA()*100)), mais le problème, c'est les doublons.

Il y a aussi moyen d'écrire dans une colonne une liste de 1 à 100, puis dans la colonne voisine de placer la fonction ALEA() sur les 100 lignes et de trier les deux colonnes sur la deuxième colonne.

Désavantage : les nombres se modifient à chaque calcul de la feuille.

Le plus pratique est de télécharger MOREFUN sur :
Ce lien n'existe plus
Parmi les macros complémentaires il y a ALEAS() qui fait exactement ce que tu demandes, sans doublons.

Â+
 

Tibo

XLDnaute Barbatruc
Salut Zucchero,

A essayer :

en A1 :

=ALEA()

A recopier jusqu'en A100


en B1 :
=RANG(A1;$A$1:$A$100)

A recopier jusqu'en B100

Cela te donne les nombres de 1 à 100 dans un ordre aléatoire et sans doublon. Attention toutefois, en fonction de tes besoins, il faut peut être faire un copier / collage spécial / valeur pour figer cette liste aléatoire.

@+

Message édité par: tibo, à: 15/11/2005 13:27
 

Hervé

XLDnaute Barbatruc
Bonjour tout le monde

après la bagarre, mais tant pis.

Une macro VBA pour des aléatoires sans doublons :


Sub Bouton2_QuandClic()
Dim tablo(1 To 100)
Dim i As Byte, j As Byte
Dim doublons As Boolean

For i = 1 To 100
       
Do
                tablo(i) = Int((100 * Rnd) + 1)
                doublons =
False
                       
For j = 1 To 100
                               
If i <> j Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If tablo(j) <> '' Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If tablo(i) = tablo(j) Then
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; doublons =
True
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Exit For
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End If
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next j
&nbsp; &nbsp; &nbsp; &nbsp;
Loop Until Not doublons
Next i
For i = 1 To 100
&nbsp; &nbsp; &nbsp; &nbsp; Cells(i, 2) = tablo(i)
Next i
End Sub


salut
 

andré

XLDnaute Barbatruc
Resalut à vous tous,

Hi, hi, hi, ...

J'ai pris d'entrée la soluce toute prête d'XLDnaute

Il ne nous reste plus qu'à lister les noms des XLFnautes (tous) et d'y appliquer un ALEA() pour savoir qui est l'heureux élu, encore faudrait-il savoir si le classement se fera par ordre croissant ou décroissant !

Â+
 

Abel

XLDnaute Accro
Bonjour le fil, le forum,

Ha, merci Hervé. C'est ce que je cherchais à faire au plus simple ou au moins scabreux ...

Arf ! André, j'étais en train de chercher qui était xlDnaute parmis les aléas ou autres chronos.
J'en ai encore la larme à l'oeil. Hi hi !

Bonne journée à tous.

Abel.
 

Discussions similaires

Réponses
16
Affichages
753

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175