Autres Générer des binômes avec contraintes dans le choix

Webperegrino

XLDnaute Impliqué
(Excel 2003)
Le Forum,
Bonjour,

ROGER2327_612 avait conçu de la codification VBA géniale et d’exécution ultra-rapide dans une discussion http://www.excel-downloads.com/forum/200109-tirage-au-sort-avec-contrainte.html
Le fichier ci-joint contient cette codification, adaptée.

Sur commande, une équipe de bénévoles y est rangée par deux pour réaliser des missions sur lieux et en plages horaires définis ultérieurement dans le tableau récapitulatif en feuil10.
Il faut d’abord procéder de 1 à 4 tirages, en feuil11 à 14, mais je bloque sur deux contraintes.
Ces contraintes sont données en feuil2 « Paramètres » en :
- colonnes Q et R pour « ne sera jamais avec… »
- colonnes S et T « a une préférence pour être avec… ».
C’est pour cela que je me rapproche du Forum pour savoir si une solution peut être trouvée en VBA.

Complément d’informations sur le fonctionnement de l’application :
Je récupère les listes de feuil4 (colonne D à AA) et je les place, une à une, en feuil11 en cellule F6.
Ensuite la feuil11 propose un premier tirage de binômes.
Je sélectionne (« E ») (par un double clic gauche) et le reste sera référencé en (« Q ») (bouton ‘Prépa Tirage suivant’) pour partir en report en feuil12 pour un deuxième tirage de binômes à sélectionner… avec les mêmes manip en Feuil13 et si nécessaire pour un dernier tirage en feuil14.
J’ai ainsi mes groupes de binômes pour 2 ou 3 ou 4 périodes pendant les dix jours répertoriés dans la feuil10 qui m’affichera plus tard les résultats.
Pour répondre à trois contraintes de la feuille Paramètres, je retire manuellement les individus en feuil11 de la première liste AVANT de procéder au tirage n° 1 :
- colonne N : les bénévoles de moins de 18 ans seront retirés de la liste (s’ils y sont) ainsi qu’un adulte retiré aussi de cette liste. Ainsi le bénévole mineur sera accompagné d’un adulte, pour recevoir uniquement une mission s’achevant à 22 h 00 maxi.
- Colonne O : les nouveaux (pour les deux premières missions) ; je les mets avec un ancien. Ensuite ces nouveaux pourront être ensemble ou avec un adulte, indifféremment.
- Colonne P : « Toujours avec » ; ceux-là sont retirés de la liste Colonne F des feuil11 à 14 et je leur attribue une mission « ensemble ».


Ce serait magnifique si les deux dernières contraintes colonne Q à colonne T dans paramètres, appliquées dans les tirages Feuil 11 à 14, pouvaient fonctionner en «automatique ».
Quant à la macro actuelle de ROGE2327, elle fonctionne déjà à merveille et je mettrai sûrement 10 ans pour comprendre son fonctionnement, ligne après ligne…

Au plaisir de recevoir une suite à cette requête,
Cordialement,
Webperegrino
 

Fichiers joints

Webperegrino

XLDnaute Impliqué
Le Forum,
Bonjour et désolé de revenir dans cette discussion.
Je n’arrive toujours pas à trouver les solutions VBA pour traiter les conséquences des colonnes N à V de la feuille 2… pour réussir de bons tirages en feuil11 en colonnes I à P.

Voici ma dernière version où tout se fait sur la feuille 11.
Les boutons suivants placés en haut de feuille ont grandement simplifié les procédures de Tirages.
On reste donc sur cette feuille et la liste des inscrits diminue au fur et mesure de ces tirages en cascade.

Le bouton RETIRER :
Permet de retirer, un à un, des éléments de la liste qui paraîtra en colonnes F et G
Ces éléments se positionnent en colonne AB6 et au-dessous, un à un.

Le bouton EFFACER :
Remets ces éléments « retirés » dans l’appel de la liste en colonne F et G, pour un prochain tirage.

Le bouton REPREND LES INSCRITS :
1° avant le premier tirage, place en Col F et G les éléments de la feuille 2 (moins ceux qui sont énumérés en feuille 11 cellules AB6 et suivantes)
2° pour des tirages annexes, reprends en col F et G les éléments préparés pour un prochain tirage dans la zone col I à P.

Le bouton EFFACER POUR REPRENDRE TIRAGE :
Agit sur colonnes I à P.

Le bouton TIRAGE :
Propose des réunions des éléments, deux par deux, à partir de ceux qui sont placés en col F et G.

Ensuite des double-clic-droits permet de sélectionner ceux (« E ») à qui on attribue une mission à l’issue de ce tirage.

Le bouton PRÉPARER LE TIRAGE SUIVANT :
1° tiendra compte de ce qui est retiré en col AB6
2° Attribuera « Q » en col L et Q pour ceux qui, seuls, seront retenus pour le tirage ultérieur.
3° ces éléments référencé « Q » vont être déplacés en col F et G

On refait la même démarche pour de nouveaux tirages avec cette fois-ci des éléments limités : les tirages précédents ont éliminé de la liste ceux qui avaient reçu la mention « E ».

Merci pour toute aide
Webperegrino
 

Fichiers joints


Haut Bas