Excel VBA - Dispatcher liste participants selon critères
Bonjour à tous,
Résumé : Je souhaite créer des groupes de travail regroupant plusieurs compétences. Une liste de participants doit être répartie en plusieurs groupes en fonction de critères de répartitions (afin de répartir équitablement les compétences). Un numéro de groupe est attribué à chaque participants.
Voir fichier joint
Explications :
Mon fichier comporte 3 onglets :
- "Participants" : Contient les données brutes des participants dans un tableau
NOM PRENOM GRADE VILLE METIER SEXE
Le nombre de participants n'est pas figé
- "Critères" : Permet de selectionner et classer les critères de répartition
Critère Rang
Grade 3
Ville 4
Metier 2
Sexe 1
Permet de classer les critères par choix
Tables
Places Nombre
7 1
8 1
9 10
Permet en fonction du nombre de participants de définir le nombre de groupe et le nombre de personnes par groupe.
Il s'agit de faire des équipes homogènes en terme de compétences. Dans le cas présent, le premier critère est le sexe. Il faudra donc faire des équipes avec autant de femmes que d'hommes tant que faire se peut.
Ensuite il faudra que les équipes soit composées des différents métiers de manière homogène, tant que faire se peut
Et ainsi de suite pour les autres critères dans l'ordre de préférence établi.
- "Répartition" : Il reprend l'onglet "Participants" et ajoute une colonne "Table"
La macro devra indiquer pour chaque ligne (participant) le numero de table défini. Le numéro de table est compris entre 1 et X en fonction du nombre de groupe total (onglet "critères", célulle "G8")
Par avance merci pour votre aide.
Je vous joins le fichier reprenant ces éléments.
Salut et bienvenue sur le Forum,
Je me suis intéressé à ton problème et j’espère que je n’arrive pas trop tard.
Je te propose une solution qui n’est sûrement pas la panacée, mais ce serait intéressant de déjà avoir ton avis à son sujet. Afin d'effectuer des essais, tu peux changer le rang des critères dans les cellules C4:C7 de la feuille "Critères" et/ou la liste des participants.
Je présume que ton exemple n’est pas absolument représentatif et peut-être que des situations telle que celle présentée dans mon fichier ci-joint n’arriveront pas dans la réalité (par exemple aux lignes 15 et 16 de la feuille «Répartition» il y a deux personnes aux qualités pratiquement identiques dans le même groupe. Mais peut-être n'est-ce aussi simplement pas évitable
Tu as placé un fichier .xls sur le Forum et Excel 2003 ne peut effectuer des tris que sur la base de 3 critères uniquement (aujourd’hui, je n’ai également que Excel 2003 à ma disposition). Le fichier joint n’effectue donc qu’un tri limité. Faudrait-il absolument pouvoir travailler avec les 4 critères inscrits sur ta feuille «Critères» ou est-ce que 3 critères seraient déjà pas mal ?
Cellules F5:F7 : De quoi dépendent ces chiffres ?
Autrement, donne plus de précisions : Quels sont les nombres maximum et minimum de participants ? Maximum et minimum de personnes par groupe ?
Attention, ne te perds pas en explications inutiles, va à l'essentiel ; il est par exemple inutile de décrire ce que contient une feuille que je peux consulter moi-même
A te relire.
Bonjour yvouille,
Merci beaucoup pour ta réponse très complète et tes conseils quant à la formalisation de ma demande! On y est pratiquement.
Concernant ta remarques sur le lignes 15 et 16, en effet il sera possible que dans certains cas des personnes aux compétences similaires/identiques se retrouvent dans le même groupe. Et comme tu le dis, ce n'est pas tout le temps évitable.
Concernant le nombre de critères, il serait bon de pouvoir jouer sur les 4 critères. Mon fichier est Xls, mais je dispose en réalité de la version 2007 d'Excel. Penses tu qu'il est possible d'adapter ton travail pour prendre en charge le 4eme critères dans Excel 2007 ?
Les céllules F5:F7 sont entrées arbitrairement et correspondent au nombre de personnes par groupe. Dans l'exemple on décide donc d'avoir trois types de groupe (9, 8 et 7 personnes). Ce nombre doit forcément être égal au nombre de participants total, et aura donc une incidence sur le nombre de groupe. J'ai décidé arbitrairement d'instaurer 3 types de groupe. PS: F4=Personnes et non "table"
Concernant les précisions :
Nombre de participants : Il n'y a pas vraiment de nombre mini et maxi. Mais si besoin, on peut considerer 30 comme le minimum et 1000 comme maximum. (Toutes les infos entrées manuellement (F5:G5) sont fonction de ce nombre.
Nombre de personnes par groupe : il est entré manuellement pour les trois types de groupe (F5:F7) de manière à inclure tous les participants.
Nombre de groupe : idem (G5:G7)
J'espère avoir été plus précis cette fois-ci.
Encore merci pour ton aide.
Au plaisir de te lire
Salut,
Je te propose un fichier prenant en compte les 4 critères, mais dans un ordre toujours identique. Ceci car selon moi ce serait beaucoup trop compliqué à coder autrement et surtout parce que ça me paraît absolument inutile ; la répartition dans les groupes est suffisamment variée avec cette solution. Regarde pour t'en convaincre l'exemple fourni en annexe.
Tu avais des doublons parmi les participants. Je les ai renommés en inscrivant un 1 après le prénom.
Faudrait-il encore créer une feuille supplémentaire avec la formation des groupes ou simplement trier en finale la feuille "Répartition" ?
A te relire.
Salut Yvouille,
Merci pour ta réponse ! Je suis de retour après un long silence, mea culpa.
Je rentre d'un déplacement professionnel. 'ai regardé attentivement le fichier que tu m'as envoyé precedemment ! En effet je le trouve beaucoup plus adapté à ce dont j'ai besoin.
J'y ai apporté quelques modifications pour le rendre plus en ligne avec ce dont j'ai besoin. C'est essentiellement du design et la préparation des fichiers en sortie.
Cependant, il y a un gros problème. Peut être ai-je alourdi le process en modifiant le code, mais il devient tres tres, voire tres tres long. En fait dans les exemples sur lesquels nous avons travaillé jesqu'à présent, la liste contenait environ 150 noms. Or en réalité il y en aura autour de 600 / 700. Sur le fichier que je vais te joindre tu pourras t'en rendre compte.
Merci braucoup pour ton aide !
A bientôt
Salut,
Oui, oui, je me souviens encore de toi
Ton fichier n'a pas passé (trop gros ?).
Essaie dans l'ordre 1) de le compresser, 2) de l'envoyer par http://cjoint.com/
Sinon on avisera.
Bonnes salutations.
Bonjour,
Je suis assez novice avec les macros et je tente donc de transformer des macros existante afin de répondre à mes besoins.
Mais là j'avoue bloqué.
J'organise des Olympiades avec 28 équipes et je souhaiterai répartir les participants selon leur nationalités, leur types d'handicap et si possible en dernier leur sexe afin d'organiser des équipes le plus mixte culturellement parlant mais égalitaire en termes d'handicape;
J'ai repris le fichier de cette conversation mais ayant plus de participants, plus de pays (ville) mon fichier ne fonctionne pas car je ne sais pas où modifier ces données dans la macro.
Pourriez-vous m'aider s'il-vous plait? Ca me sauverait meme
Merci beaucoup d'avance.
Hélène
Salut Hélène et bienvenue sur le Forum,
Tu aurais mieux fait d’ouvrir ton propre fil en faisant référence à cet ancien fil clos depuis longtemps et dont plus personne s’intéresse à part moi qui y était abonné d’office
Mon travail de l’époque semble assez conséquent et là je n’ai pas trop le temps de m’y replonger de suite. Je te propose alors soit que tu ouvres un nouveau fil en posant ta question – et peut-être qu’il n’est même pas nécessaire de faire référence à cet ancien fil, si un membre trouve mieux de te présenter sa solution à lui - soit tu patientes que j’ai le temps de revoir ce code. Mais rien ne dit qu’il est adaptable à ton problème.
Si jamais tu choisis la première des deux solutions ci-dessus, informe-moi en afin que je ne commence pas à étudier mon ancien code dans le vide et si jamais personne ne vient à ton aide, relance-moi sur le présent fil.
Je n’ai pas tout compris moi-même à mon explication, j’espère que tu vas t’en sortir
Cordialement.
Merci beaucoup pour ta réponse.
J'avoue être une novice sur le forum et les macros, et je galère pas mal.
Je vais suivre tes conseils et ouvrir un nouveau fil dès maintenant.
Je reviendrai vers toi en dernier secours car je ne voudrai pas t'importuner.
Encore merci et bon weekend.
Hélène