Double Tirage au sort aléatoire

Bonjour,

j'ai vu de nombreux forums comprenant des questions sur le tirage au sort aléatoire mais les réponses ne conviennent pas à mon cas, ou je ne parviens pas à les réadapter.

Je souhaiterais répartir des dossiers entre plusieurs personnes une première fois, puis répartir ces mêmes dossiers une seconde fois entre les mêmes personnes en veillant à ce qu'une personne n'ait pas deux fois le même dossier.

Concrétement : il y a 70 dossiers à lire et 10 personnes, soit 7 dossiers chacun au 1er tirage, puis 7 dossiers (différents du 1er tirage) au second tirage. Cela permet à chaque dossier d'être lu par deux personnes différentes.

J'ai tenté une fonction ALEA.ENTRE.BORNES(1:70) toute simple mais cela genère de nombreux doublons dès le 1er tirage.

J'ai tenté une seconde formule =RANG(B2;$B:$B;1) que j'ai modifié manuellement pour incrémenter chaque colonne. Cela fonctionne pour un premier tirage mais je ne sais pas comment configurer le second.

Je joins un fichier qui sera peut-être plus clair.

Je vous remercie de votre aide.

93tirage-au-sort.xlsx (16.93 Ko)

Bonjour,

Une solution formules à base de fonctions personnalisées...

Tu trouveras dans le Module1 de ton classeurs 2 fonctions personnalisées (elles s'utilisent comme les fonctions habituelles d'Excel) :

TIRAGESELEC2D

TIRAGESELEC

Ces fonctions opère un tirage de 1 à un nombre max qui doit être indiqué en argument de la fonction. Le nombre de nombres aléatoires tirés sans doublons correspond au nombre de cellules sélectionnées auxquelles appliquer la fonction. Ces fonctions sont matricielles. La première produira un tableau (nombre de colonnes et de lignes supérieur à 1). La seconde sur une plage d'une seule ligne ou une seule colonne. Ces fonctions ne sont pas volatiles, elles ne se recalculent pas avec le recalcul de la feuille.

Ayant un peu modifié ta feuille pour la démonstration, le 1er tirage s'effectue sur la plage B5:H14.

On sélectionne cette plage. On tape la formule en indiquant 70 en argument.

=TIRAGESELEC2D(70)

On valide par la combinaison de touches Ctrl+Maj+Entrée.

La plage se remplit avec les nombres 1 à 70...

Pour le 2e tirage on procèdera par décalage du 1er tirage sur chaque colonne.

La plage destinée au second tirage est J5:P14.

Là on fait un tirage sur le décalage à appliquer pour chaque colonne, de façon à avoir un décalage différent pour chacune, ce qui conduira à ce que les 7 dossiers traités par un jury donné se retrouveront chacun dans un jury différent pour le 2e examen.

J'ai opéré le tirage du décalage sur la ligne 1 : J1:P1.

Ayant 10 jurys, le décalage doit être supérieur à 0 et inférieur à 10 (0 et 10 correspondant à un décalage nul).

On tape donc la formule sur la plage indiquée après l'avoir sélectionnée.

=TIRAGESELEC(9)

Il s'agit de la seconde fonction. On valide par Ctrl+Maj+Entrée.

7 nombres différents dans la série de 1 à 9 apparaîtront dans la plage qui est dans l'alignement de la plage de 2e tirage.

Sur cette plage, la formule utilisera des fonctions classiques.

En J5 on tape la formule suivante :

=DECALER(B$5;MOD(LIGNE(1:1)+J$1-1;10);)

On valide. Cette formule se recopie sur l'ensemble de la plage. On l'étend donc et c'est fini.

Pour modifier les tirages, il convient de resélectionner les plages concernées. On édite la formule (il suffit pour cela de positionner le curseur dans la barre de formule), et on revalide par Ctrl+Maj+Entrée.

Même chose d'ailleurs, si au cours de manipulations ou à l'ouverture, ça affiche #VALEUR!. Il faut la relancer pour recalculer.

Cela se produit si les références sont perdues (lignes ou colonnes supprimées par exemple) et comme le calcul n'est pas automatique (pour éviter un changement inopiné non voulu)...

Cordialement.

C'est super, merci MFerrand ! En plus avec l'explication, je pense avoir compris l'idée.

En revanche, j'ai encore une petite question. En rouvrant le classeur, celui me met une erreur #NOM? même si je relance le calcul avec Ctrl+Maj+Entrée. Aurais-tu une solution ?

Encore merci.

Bonjour,

Tu n'aurais pas détruit les macros par hasard ? Ton classeur est bien enregistré en .xlsm ?

Vérifie que le code des fonctions est bien dans Module1.

Effectivement, le dossier n'était pas enregistré en xlsm !

Ça marche nickel.

Merci beaucoup pour ton aide.

Bonne journée

Bonne continuation.

Rechercher des sujets similaires à "double tirage sort aleatoire"