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
 
Bonsour®
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
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
 
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
Retour