Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

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 !

Chveitsarski

XLDnaute Nouveau
Salut à tous,

Tout est dans le titre 🙂
Mais pour être plus clair, je dois faire apparaître une dizaine de chiffres aléatoire, et dans tout ces nombres, il ne dois pas y avoir de doublon...
Ca fait un moment que je bloque la dessus... Si quelqu'un avait une solution ? 😱

Merci à tous !
 
Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

Bonjour Chveitsarski, salut JCGL, excalibur 🙂

Puisque j'ai fait le travail, voici le fichier et la macro :

Code:
Sub Alea50()
Dim n As Byte, c As New Collection, al As Byte, i As Byte
n = 10 ' quantité de nombres aléatoires désirés
If n > 50 Then MsgBox "Impossibilité": Exit Sub
On Error Resume Next
While c.Count < n
al = Int(1 + 50 * Rnd)
c.Add al, CStr(al)
Wend
For i = 1 To n
Range("A" & i) = c(i)
Next
End Sub

A+
 

Pièces jointes

Dernière édition:
Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

Merci pour ta réponse rapide, mais malheureusement j'obtiens des doublons...

En fait j'ai 5 colonnes, et ces 5 doivent avoir 5 chiffres de 1 à 50 sans doublons..
Mais La colonne 1 peut avoir "10" par exemple, et la colonne 3 peut également l'avoir...

A+
 
Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

Bonjour à tous,
Salut Excalibur (Grand beau sur Cham : neige ++, soleil ++)🙂
Salut Job 🙂

Tu aurais du donner toutes les condition dès le départ...
J'ai fait par lignes et elles sont sans doublons

A+ à tous
 
Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

Oui excuse, je n'ai pas été clair...
Mais j'ai essayé ton programme JCGL, et ça fonctionne.. presque 😉
Parce que justement j'aimerai que ça soit par colonne et non par ligne le tri..
Qu'est-ce que je dois modifier ?

Encore merci !
 
Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

Re,

Donc pour un tableau 5 x 5, sans doublon dans chaque colonne.

J'utilise 2 macros et déclare Public la collection :

Code:
Public c As New Collection

Sub RemplissageAleatoire()
Dim lig As Byte, col As Byte
For col = 1 To 5
Call Alea50
For lig = 1 To 5
Cells(lig, col).Value = c(lig)
Next
Set c = Nothing
Next
End Sub

Sub Alea50()
Dim n As Byte, al As Byte
n = 5 ' quantité de nombres aléatoires désirés
If n > 50 Then MsgBox "Impossibilité": Exit Sub
On Error Resume Next
While c.Count < n
al = Int(1 + 50 * Rnd)
c.Add al, CStr(al)
Wend
End Sub

A+
 

Pièces jointes

Re : Faire apparaître des chiffres aléatoire de 1 à 50 sans doublon

J'ai été un peu rapide 😉

J'ai trouvé...

En ayant modifié le code ainsi :

Nbr = 5
If Nbr = 0 Then Exit Sub

For k = 1 To Nbr
For i = 1 To 5
Do
If i < 1 Then
num = Int((50 * Rnd) + 1)
Else
Tablo(i) = Int((50 * Rnd) + 1)
End If
Doublons = False
For j = 1 To 10
If i <> j Then
If Tablo(j) <> "" Then
If Tablo(i) = Tablo(j) Then
Doublons = True
Exit For
End If
End If
End If
Next j
Loop Until Not Doublons
Next i

Ligne = Ligne + 1
For i = 1 To 10
Cells(i, Ligne) = Tablo(i)
Next i
Next k

Encore un grand merci et une bonne soirée avec la neige 😀
 
- 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

Discussions similaires

Réponses
3
Affichages
637
Réponses
2
Affichages
1 K
Retour