Tirage au sort contraignant

Fermé
le Stage-Hier - 8 avril 2014 à 21:21
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 10 avril 2014 à 21:48
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 lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
10 avril 2014 à 17:54
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
10 avril 2014 à 21:03
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 mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
10 avril 2014 à 19:43
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
10 avril 2014 à 21:02
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 mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 10/04/2014 à 21:15
Ton fichier avec des explications sur le fonctionnement permettrait de mieux te conseiller.
eric
0
le Stage-Hier
10 avril 2014 à 21:43
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 mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
10 avril 2014 à 21:48
Je ne fonctionne pas comme ça, les yeux bandés...
Je sais que je ne procèderais pas ainsi, c'est tout.
eric
0