Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

combinaison aléatoire sans doublon

  • Initiateur de la discussion Initiateur de la discussion herve62
  • 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 !

herve62

XLDnaute Barbatruc
Supporter XLD
Bonsoir
Après quelques essais non concluant ( en VBA) je fais appel à vous
Comment générer une liste aléatoire entre 1 et 15 style :
5,12,10,11,14,7,6,1,3,13,2,15,4,8,9 donc pas de doublon
En fait pour la suite j'aurais besoin de retrouver cette liste donc j'avais commencé par générer un tableau N(x) dans une Sub , là ça va , ensuite créé une fonction que j'appelle ..... et c'est là que cela ne va plus
Merci à vous
 

Pièces jointes

Bonjour.
Essayez comme ça :
VB:
Sub Affiche()
Dim TNo$(1 To 15), J&, K&, No$
For J = 1 To 15: TNo(J) = J: Next J
Randomize
For J = 15 To 2 Step -1
   K = Int(Rnd * N) + 1: No = TNo(K): TNo(K) = TNo(J): TNo(J) = No
   Next J
MsgBox Join(TNo, ", ")
End Sub
 
Re , Bonsoir Dranreb , merci
non ça va pas , ta macro créé toujours la même combi croissante de 2 à 15 et bizarre termine par 1 ??
tu n'as pas testé ton code dans mon fichier ?
 
Bonsour® comme ceci peut-être ???
 

Pièces jointes

Zut, je me suis trompé dans un nom de variable c'est plus N mais J
Si j'ai testé mais j'ai ensuite changé les noms et oublié ça.
VB:
Sub Affiche()
Dim TNo$(1 To 15), J&, K&, No$
For J = 1 To 15: TNo(J) = J: Next J
Randomize
For J = 15 To 2 Step -1
   K = Int(Rnd * J) + 1: No = TNo(K): TNo(K) = TNo(J): TNo(J) = No
   Next J
MsgBox Join(TNo, ", ")
End Sub
 
Bon Dranreb on se croise !!!! dans les réponses
oui c'est OK donc je récupère TNo(k) pour la suite ??
Sinon peux tu voir ou ça coince dans mon truc .... ça pourra toujours servir
Merci , bonne soirée
 
Quand k est remis à 1 dans doublon, au prochain passage dans la boucle il passe à 2.
Il n'est donc pas détecté si le nouveau propo est égal à no(1) et ce dernier peut donc être retenu une seconde fois. Enfin en gros…
Mais adoptez donc mon système: pour être sûr qu'il n'y a pas de doublon, mettez tous les numéros possibles, une seule fois chacun, puis intervertissez les aléatoirement.
 
- 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
32
Affichages
4 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…