Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Distribuer une liste de participants selon conditions

Réda1

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant dans le VBA/Macros (amateur d'Excel, ayant toujours trouver le moyen de m'en sortir pas toujours avec des solutions optimales)

je me suis décidé de m'améliorer grâce à la communauté - au passage, Merci à vous tous pour tout ce que vous partager et qui sert à des millions -

Aujourd'hui, je vous soumets une problématique à la quelle je fais face (pour un novice), il s'agit de distribuer une liste de participants selon certains critères;

Concrètement, les participants ont accès à 3 ateliers étalés sur une journée, qu'ils peuvent choisir parmi une liste de 12

Chaque atelier à un nombre limité de participants

L'objectif est de proposer une macro pour automatiser la distribution des participants en fonction de leurs choix, en respectant les limites de places par atelier et éviter les redondances

Je me permets de joindre un draft en espérant que j'ai pu être clair pour décrire la problématique

Pour info, les candidats ont optés pour un choix 1, 2 et 3 mais l'ordre n'est pas important, on peut proposer le choix3 en atelier 1

Un grand merci a vous tous
 

Pièces jointes

  • Dsitrib.xlsx
    11.9 KB · Affichages: 10

Réda1

XLDnaute Nouveau
Bonjour
Il manque les plages horaires des ateliers. Si un participant choisi les ateliers A, B, C mais que ceux-ci sont aux même horaires on fait quoi?
Bonjour,

Merci yal d'avoir pris le temps de jetter un oeil

C'est Justement ce que j'entendais, par "l'ordre n'est pas important", le plus important c'est que le candidat participe à ses 3 ateliers choisis peu importe le créneau

Encore une fois merci
 

yal

XLDnaute Occasionnel
A moins que le participant n'aie le don d'ubiquité, si les trois ateliers sont au même moment je ne vois pas comment il pourrait participer aux trois. Ce n'est pas une question d'ordre puisqu'ils sont tous les trois d'ordre 1.
 

Réda1

XLDnaute Nouveau
A moins que le participant n'aie le don d'ubiquité, si les trois ateliers sont au même moment je ne vois pas comment il pourrait participer aux trois. Ce n'est pas une question d'ordre puisqu'ils sont tous les trois d'ordre 1.
Il semblerait que je n'ai pas pu bien expliquer, ce qui me vaut un peu de sarcasme

Je vais essayer de clarifier (je dis bien essayer!)
nous avons 3 créneau horaires, pour chaque créneau seront proposés tous les ateliers, du coup le respect de l'ordre des choix des candidats n'est pas important, si nous proposons au candidat l'atelier à un créneau différent; par exemple

Choix Candidat : A, B, C
Affectation proposée: B,A,C

Merci encore
 

yal

XLDnaute Occasionnel
Tout d'abord. Non l'humour n'est pas forcément sarcastique mais c'est pas grave.
nous avons 3 créneau horaires, pour chaque créneau seront proposés tous les ateliers
C'est une manière de répondre à ma question. Une autre qui aurait eu l'avantage d'être complète, aurait pu être

A priori avec cela on peut effectivement répondre à votre demande.
 

Réda1

XLDnaute Nouveau
j'achète volontiers votre humour, par ailleurs désolé que ma réponse aie eu cet effet

j'avoue que je n'étais pas tout à fait clair , le créneau n'étant pas un facteur déterminant j'ai jugé q'uil n'y avait pas besoin de faire focus dessus

"A priori avec cela on peut effectivement répondre à votre demande."

Je confirme Yal, encore une fois merci, sans rancunes
 

yal

XLDnaute Occasionnel
Une proposition qui ne prends pas en compte la question de Gégé-45550. En espérant que vous n'êtes pas sur Mac. Cliquer d'abord sur le bouton "Initialiser" puis sur le bouton "Distribuer".
 

Pièces jointes

  • Dsitrib yal v1-0.xlsm
    33.9 KB · Affichages: 2

yal

XLDnaute Occasionnel
Et une autre qui prends en compte la question de Gégé-45550. Moyennant une légère modification du tableau des souhaits, ajout d'une colonne qui pour chaque participant indique le créneau suivi de l'atelier. Pour le test j'ai limité le nombre de participants à l'atelier "A" à 8. Ce qui fait qu'il manque de la place dans cet atelier.
 

Pièces jointes

  • Dsitrib yal v2-0.xlsm
    38.7 KB · Affichages: 4

Gégé-45550

XLDnaute Accro
Bonsoir yal, Réda1, le fil
Excellent travail bien plus vite mis au point que le mien.
Peut-être un point à encore affiner :
J'ai fait un test rapide sur la V2 à partir des participants à l'atelier L, dont voici la liste :
Part93
Part9
Part7
Part6
Part5
Part49
Part37
Part28
Part16
Les N° 37, 49 et 93 n'apparaissent pas dans l'onglet 'Distribution' mais l'atelier L leur est bien affecté dans l'onglet 'Liste de choix', sauf qu'ils sont tous positionnés en Créneau 3 alors qu'ils pourraient (devraient ?) être répartis sur les créneaux 1,2 et 3.
Encore bravo pour le code.
Bonne soirée
 

Réda1

XLDnaute Nouveau
Bonsoir,

Merci à vous de vous pencher dessus

Malheureusement, je n'arrive pas tester, j'ai une erreur d'exécution 1004, la méthode 'Range' de l'objet '_Global' a échoué "tbSouhaits = Range("tb_Souhaits").Value2", sauriez vous m'orientez d'ou pourrait venir le bug

D'avance merci
 

yal

XLDnaute Occasionnel
Bonjour
Ca semblerait indiquer qu'il ne trouve pas le tableau nommé "tb_Souhaits". Ce qui est bizare. A moins que tu n'aies renommé les tableaux. Poste le fichier qui plante. Je regarderais ce qui ne va pas.
 

Réda1

XLDnaute Nouveau
Bonjour
Ca semblerait indiquer qu'il ne trouve pas le tableau nommé "tb_Souhaits". Ce qui est bizare. A moins que tu n'aies renommé les tableaux. Poste le fichier qui plante. Je regarderais ce qui ne va pas.
En effet, je n'ai pas renommé mes tableaux comme dans la macro
finalement, ça me donne une distribution, sauf qu'à chaque fois que je réinitialise ça me supprime la feuille résultat "Distribution", à chaque fois je dois en créer une avec tableau distribution
serait-il possible plutôt que de supprimer, écraser et vider simplement les cellules du tableau

J'ai testé avec mon listing de participants réels (143, 429 ateliers), j'ai 6 ateliers qui sautent 423 sont proposés

Je ne vous remercierai jamais assez
 

Discussions similaires

Réponses
2
Affichages
490
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…