Générer nombres aléatoires sans doublons Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
Milouse
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 5 janvier 2010
Version d'Excel : 2007 FR

Message par Milouse » 7 juillet 2011, 11:36

Bonjour,

Je voudrais qu'excel me génère une liste de nombres aléatoires ( fonction : alea.entre.bornes() ) mais sans avoir de doublons dans cette liste.
En fichier joint, la colonne A me génère 10 nombres compris entre 1 et 15 et je ne voudrais voir qu'une seule fois chaque nombres.
Es-ce faisable ?
Classeur1.xls
(17.5 Kio) Téléchargé 1296 fois
Avatar du membre
Nad
Passionné d'Excel
Passionné d'Excel
Messages : 4'861
Appréciation reçue : 1
Inscrit le : 16 mars 2008
Version d'Excel : 2003 FR - 2007 FR

Message par Nad » 7 juillet 2011, 11:56

Bonjour

Une demande quasi identique a été traitée hier.
Zirak a fourni le code suivant (adapté à ta plage)
Sub Aleatoire()
Dim plage As Range, cel As Range, alea As Double

Set plage = Range("A1:A10")
plage.Value = ""
If plage.Count > 15 Then Exit Sub
Randomize

For Each cel In plage
1     alea = WorksheetFunction.RandBetween(1, 15)
If Application.CountIf(plage, alea) Then GoTo 1 Else cel = alea
Next

End Sub
Amicalement
Nad
Z
Zirak
Membre impliqué
Membre impliqué
Messages : 1'200
Appréciations reçues : 2
Inscrit le : 18 mai 2011
Version d'Excel : 2010 FR

Message par Zirak » 7 juillet 2011, 12:00

Bonjour,

Ci-joint une solution avec macro sur bouton,car je ne sais pas si une formule existe sans passer par une colonne intermédiaire.

Cordialement.

Edit: Bonjour Nad, toujours aussi rapide ^^
Classeur1_v2.xls
(32 Kio) Téléchargé 5606 fois
A méditer:

"Au fur et à mesure que vous connaissez les problèmes des autres, vous vous rendez compte que le votre n'est pas si grave."
M
Milouse
Membre habitué
Membre habitué
Messages : 57
Inscrit le : 5 janvier 2010
Version d'Excel : 2007 FR

Message par Milouse » 7 juillet 2011, 12:24

Super c'est le résultat souhaité.
Merci à vous deux pour votre rapidité.
c
cousinhub
Membre impliqué
Membre impliqué
Messages : 1'949
Appréciations reçues : 5
Inscrit le : 28 mai 2009
Version d'Excel : xl 2016

Message par cousinhub » 7 juillet 2011, 12:37

Bonsoir,

Un peu à la bourre, mais une autre approche...

Tu entres dans la cellule A2 le nombre de numéros désiré, dans la cellule B2, la valeur minimale et dans la cellule C2, la valeur maximale.
Si tu as commis une erreur à l'insu de ton plein gré (par exemple, tu veux 10 numéros, dans les bornes [5:10]), tu as un message....

fichier joint :
tirage aléatoire.zip
(9.67 Kio) Téléchargé 3263 fois
Bonne soirée
1/ on se demande à quoi servent les correcteurs d'orthographe....
2/ Notre seule récompense est un "Merci".....
c
chrisguitare
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 31 mars 2013
Version d'Excel : 2003

Message par chrisguitare » 1 avril 2013, 00:18

Bonsoir cousinhub,
c'est exactement ce que je cherche, mais je souhaite générer 10 nombres mais entre les bornes 1 et 6 ce qui implique des doublons. Donc quand je change les bornes ça ne fonctionne plus.
Avez-vous une solution ?

en fait j'ai un tableau avec 6 colonnes numérotées de 1 à 6 et 6 lignes numérotées de 1 à 6. Dans 2 colonnes je veux générer aléatoirement un numéro de ligne et à coté à numéro de colonne et ceci 10 fois de suite ((une ligne sous l'autre). je me suis donc servie de votre bouton mais j'ai besoin de pouvoir doublonner les résultats dans chaque colonne.
Merci d'avance.
Chris
g
gdm
Nouveau venu
Nouveau venu
Messages : 1
Inscrit le : 19 mai 2013
Version d'Excel : 2010 FR

Message par gdm » 19 mai 2013, 17:44

Alors là!
Alors là!!!
je m'inscris sur ce forum pour vous remercier.
Suffit d'insérer dans le fichier téléchargé ses variables, de modifier les normes de la fonction macro, d'appuyer sur le bouton et le tour est joué.
Merci, merci beaucoup.
C
CRAM
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 30 décembre 2016
Version d'Excel : 2016

Message par CRAM » 30 décembre 2016, 13:21

Bonjour,
Merci pour ces réponses.
J’ai besoin de pousser un peu plus loin la difficulté, je m'explique :
J'ai 17 musiciens pour 14 chaises.
Les positions 3 à 16 font l'objet d'un placement aléatoire, MAIS NE PEUVENT PAS être doublées avant que les 14 musiciens n'aient utilisé chacune des 14 positions à disposition.
Les positions 1 et 2 sont déterminées de façon non aléatoire puisqu’il s’agit de solistes, j'ai donc utilisé le fichier de Nad comme ceci :
Nb numéro = 14 / Valeur Min = 3 / Valeur Max = 17
Au final, je dois produire une suite de colonnes (=concert) affichant le tirage au sort des positions sans doublons jusqu’au 14e tirage sachant que le 15e ne doit pas présenter de doublons avec le 14e et que le processus se répète toutes les 14 colonnes et pour une saison entière.
Je crains de ne pouvoir éviter VBA, raison pour laquelle toute aide serait la bienvenue.
Bien cordialement,
CRAM
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'620
Appréciations reçues : 297
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 31 décembre 2016, 12:55

Bonjour,

voici une macro qui génère des positions aléatoirement.

faire alt-F8 pour lancer la macro
concert.xlsm
(17.71 Kio) Téléchargé 494 fois
C
CRAM
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 30 décembre 2016
Version d'Excel : 2016

Message par CRAM » 2 janvier 2017, 12:30

Bonjour,
Merci pour cette prompte réponse qui fonctionne à merveille.
J'ose une dernière question pour approfondir un peu plus la chose, si je veux que les nombres issus de cette macro soient remplacés par des noms ("6"="nom6") directement ou indirectement, quelle méthode vous suggérez d'utiliser ?
J'imagine qu'il faut tout d'abord identifier les noms n3 = "Nom3" etc. puis utiliser la méthode For If Then pour chacune des cases impliquées par la macro.
Savez-vous si, dans les tutoriels du site il existe quelque chose se rapprochant de cette demande ?
Encore merci d’avoir répondu à ma première requête et meilleurs voeux pour 2017.
Cordialement,
Cram
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message