Tirage au sort contraignant

le Stage-Hier -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai créé une formule qui me permet de générer aléatoirement des valeurs sur 11 cellules, à partir d'une de base de données de valeurs.
J'ai ensuite mis en place un opérateur "Do ... Loop" pour que l'opération se répète, tant que toutes les valeurs tirés au sort ne sont pas différentes.
Seulement, je voudrais que 2 valeurs spécifiques soient forcément tirés au sort à tout les coups.
Est ce possible ?

Merci d'avance.

2 réponses

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Crée un dictionnaire à partir de ta base de données.
Pour les 10 premières valeurs, à chaque tirage au sort dans le dictionnaire, supprime celle-ci et ajoute-la dans un 2è dictionnaire.
Pour la 11è valeur pioche dans le 2è dictionnaire.

A+
0
le Stage-Hier
 
ma base de données est une simple page Excel.
Ce système de dictionnaire est quand même possible ?
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

Je n'ai pas compris pareil.
je voudrais que 2 valeurs spécifiques soient forcément tirés au sort à tout les coups.
Donc tu n'en as que 9 à tirer, quitte à mélanger les 11 au final.

eric
0
le Stage-Hier
 
C'est vrai qu'on peut le dire comme ça du coup !
Mais mon problème est exactement ce que tu as dis, je ne sais pas "les mélanger au final".
Il faut qu'elles apparaissent à tous les coups, mais pas à la même place.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Ton fichier avec des explications sur le fonctionnement permettrait de mieux te conseiller.
eric
0
le Stage-Hier
 
Comme c'est un stage pour une boite, le fichier contient des noms et informations confidentielles.
Mais je vais essayer d'expliquer clairement :
En résumé, je voudrais que la boucle "Do ... Loop" s'exécute jusqu'à ce que toutes valeurs soient différentes ET que la plage de cellules où ces valeurs choisis apparaissent, contiennent les 2 valeurs souhaités.
Pour l'instant mon code donne donc quelque chose comme :

Do Until Sheets(3).Range("B10") <> Sheets(3).Range("C10") And Sheets(3).Range("B10") <> Sheets(3).Range("D10") etc

...(Formule aléatoire)

Loop
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Je ne fonctionne pas comme ça, les yeux bandés...
Je sais que je ne procèderais pas ainsi, c'est tout.
eric
0