Ok C. (..sans J.) !
Finalizons...Finalizons...
bibibol,
nous réfléchissons à ta problématique !
Pour l'instant mes essais ne sont pas concluants
ps : un jimbo Lion et un Claude Le Loup dans un refuge pas facile non plus
donc patience
jmb
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
Cela fera 2 loups, mon nom aussi signifie Loup.
bibibol, Claude
Je me torture l'esprit à essayer de trouver la formule magique permettant de mixer tout çà, et j'en arrive à cette réflexion :
Il faut 2 volontaires sur la même tranche horaire,
répartir équitablement les heures (du moins je le suppose),
gérer les contraintes (mineurs, affinités),
les absences...
idéalement et mes tests tendent à me donner raison (du moins pour le moment) à remplir une première ligne hebdomadaire (du dimanche au samedi) avec toutes les possibilités fournies (nous limitons donc les contraintes hormis les mineurs). Dans ce cas plusieurs volontaires (plages communes) seront présents sur la même tranche (nous ferons le tri ensuite).
Ensuite la deuxième ligne fera apparaître la même technique en intégrant les mineurs (pas de soucis puisque seuls les majeurs inscrits sur la même ligne) en appliquant le même raisonnement (un not in évitera de reporter le même volontaire sur la même plage).
Cette technique de remplissage globale assure qu'il n'y aura aucun trou dans notre agenda, il sera plus facile ensuite d'enlever les volontaires sur chaque plage que de relancer n requetes permettant de trouver la situation la plus efficace.
L'application des contraintes se fera donc sur un traitement particulier (requêtes plus ou moins complexes à prévoir), permettant de ne conserver qu'une seule occurrence sur chaque ligne en privilégiant les chevauchements (et donc les contraintes posées) ainsi qu'une plage maximum de 3 heures et 2 heures minimum.
Donc Claude je ne sais pas où tu en es de tes essais, je peux creuser de mon côté cette technique ou as tu élaboré de ton côté une stratégie différente sur laquelle s'appuyer ?
Le souci de performance n'est pas nécessairement de mise dans l’empilement des requêtes permettant de lever une à une les contraintes. Au vu du jeu de données cela devrait être assez rapide je pense.
Reste cette contrainte posée dans le #6 qui à mon sens pose le plus de soucis :
Dans ce cas dans ma vision le volontaire est disponible toutes les semaines, et un calendrier d’absence lèvera une contrainte (la requête d'insertion devra contrôler la disponibilité du volontaire). Ce même calendrier d'absence permettant de gérer maladie, rendez-vous ponctuel...Et bien les jours c est celons les volontaires, ca va de maxi 4 jours disponibles par semaine et mini 1 tt les 2 semaines.
Dans l'attente de ta réponse
Jean-Marie
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
Bonjour Jean-Marie,
Je n’avais pas l’intention d’utiliser des requêtes.
C’est avec du code VBA que le programme aurait proposé les affectations pour la période demandée.
Une partie de code aurait aussi servi à vérifier le bien-fondé des retouches (désistements…) éventuellement apportées manuellement a posteriori.
Mon idée était de demander à bibibol de garnir, au moyen « de mon ptit formulaire gris » la table tVolontaires pour tout son effectif actuel.
Ceci pour que je puisse commencer à écrire (et tester au fur et à mesure) le code VBA.
Je vais attendre la réaction de bibibol à tes billets et laisser mûrir un peu.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Claude,
Oui en effet approche stratégique différente ! Je veux bien te suivre dans ton raisonnement pour l'instant encore un peu obscur je dois le dire.
Peut-être qu'un un moment donnée nos réflexions se rejoindront mais pour la partie VBA pas de soucis (c'est le domaine ou je me sens le plus à l'aise donc çà tombe bien).
Pour enrichissement personnel, je vais exploiter ma technique (un jeu cérébral qui me tente bien je dois l'avouer).
Donc attente des observations de bibibol
Jean-Marie
N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
Retrouvez-moi sur le chat en salon base de données
oui..ouuuuiii, okaaaaay
...bon, je saisi pas tt la ...et je vais pas vous être très utile ni cote VBA ni pour la méthode de prog a mettre en place je crois.
euh, sinon, a partir tu moment ou l on obtient un résultat, j ai pas vraiment une méthode préférée, je veut dire :
Je doit pondre la liste pour les 2 mois a venir, je clique, si ca prend 20 sec a tt calculer, mais que ca le calcul "equitablement"...
c est pas pour les 20 seg. que j aurais passer a attendre que j irais rouspéter vu que ca m économise 1 hr de "cogitage avouons le rébarbatif" bien que nécessaire..
et...pour un résultat en sus plus ou moins impartial
... c est vrais que sur le point "6 il y a qq cas de volontaire qui ne peuvent venir qu une fois tt les 2 semaines.
Il devrait y avoir une astuce pour gérer cela, car il y en a d autres qui, bien que souhaitant passer un même jour, au final , ne passeront qu une fois tt les 2 ou 3 semaines vu
la file d attente. Bref...
Il y a ptet un détail que je n ai pas mentionné avant, Claude semble demander une liste sup. (complète ?) en fait, c est tt les volontaires/horaires dont je dispose . a cet instant.
C.a.d. que pour les heures ou il n' y a personne, je laisse ces horaires/jour "en blanc" (au lieu de m y mettre moi ou un autre "bouche trou" par ex.)
L avantage pour "nous" de le faire ainsi est que ds un tableau (formatée en sem/col/ligne) "les blancs" sont ainsi faciles a repérer pour le lecteur et lui montre "de suite" ou il y a un manque a remplir ou une place a prendre...
Ajout:
Hmm. je sais pas ds la prog de Claude s il prevoit qu'une boite de dialogue me soit proposee au fur et a mesure avec les options "Accepter pour cet horaire" ou "Passer au suivant"...
En fait je préférerais en avoir le strict minimum !
A) Qu il me demanderait la Date de départ/fin , c est bon
B) Message "d avertissement de tête distraite" quand la date n est pas celle du jour suivant la dernière liste imprimée, OK
B+) Je ne souhaite pas avoir un prog trop rigide sur les dates, par exemple,si l on décide de faire une exposition spéciale d une semaine dans un autre endroit,
il n y aurait donc pas de cases "remplies" a faire paraitre pour cette semaine.
= La Semaine reste en blanc mais est tt de même imprimée.
(Ooopss, ca aussi ca serait sympa en option, c.ad. imprimer chq sem par défaut ..ou...
ne pas "l'imprimer"du tout pour de plus longues périodes "en blanc", économie de papier)
Donc on doit pouvoir "sauter" une certaine période sans pour autant provoquer un "blocage du programme sur un msg. d erreur "alerte alerte"..j entend"
- Au final.. on ferait clic sur le bouton "Lancer le calcul"
...et paf ...il sortirait la liste en une fois pour les x mois a venir (sans autres boites de dialogue nécessaire)
- On relit la liste, on se rend compte d un chg qui reste a faire - un vol. qui est en vacance, on rentre dans sa fiche, on le coche comme "indisponible jusqu a nouvel ordre"
*ah, au fait cela serait hyper nécessaire pour ne pas devoir l éliminer de la liste tout en ne le prenant pas en compte pour X raisons.
- ...donc... on relance le Calcul de nouveau...repaf...nous sommes très content des résultats de la liste !!
- On imprime ça ou on le Telegram a tout ses contact. le tour est joué et on reprend une vie normale comme dirait l autre...
voili voila... remarques eventuelle en attende de lecture..
Alo alo Houston...Vous avez ateind la limite synaptique...ou c est les gdes vacances qui sont en avanced ?
Bonjour,
Personnellement j'attends que tu me dises si tu es d'accord de compléter la table qui décrit les desiderata du personnel actuel à l'aide du formulaire que je te transmettrais.
Avant ce feu vert, je n'ai encore rien entrepris.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Ok, pas de probleme pour ton formulaire... mais la table vient avec ?
Évidemment !
Nous allons construire au fur et à mesure une base de données (en Access2000) qui servira à nos échanges sur le forum.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
N.B. J’utilise Access2000. Tu peux utiliser les fichiers .mdb sans problème avec ta version 2016.
Pendant que nous travaillons ensemble, ne convertis pas le format (.mdb).
Voici un premier jet du formulaire qui permet d’encoder les disponibilités des volontaires.
Dans un deuxième temps, on s’occupera des coordonnées à ajouter (adresse, tel, etc.).
Voici un exemple :
Il est volontaire pour les pauses qui sont cochées.
Mais seulement deux jours pendant la même semaine.
Mais il faut au moins trois jours sans, après un jour de prestation. (S’il est venu dimanche, il ne faut pas l’appeler avant mercredi.)
Mais un maximum de six heures d’affilée.
Mais, s’il vient, il faut aussi que Edouardo ou Armando vienne aussi (covoiturage par exemple).
Mais, s’il vient, alors Alvaro ne peut pas venir (il lui a piqué son ex.).
--------
Je te suggère de d’abord encoder tous les noms.
Signale-moi, si tu vois d’autres contraintes à exprimer.
Quand tu as terminé, tu postes le zip du fichier .mdb.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Access n oure pas les fichier *.pptx
d ailleur, jamais vu ce format au paravant !
C est quoi ce fichier ????
Bonjour,
Oups ! Je me suis simplement trompé de fichier !
Voici le bon.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Salut,
1) le fichier s ouvre bien.
Question, faut il forcement mettre un "CoVolontaire oblige" ?
J ai des volontaire qui n ont pas de partenaire dans leur horaire disponible...il faut aussi les prendre en compte...
2) j ai poste un msg...qui n apparait pas ici...
Je vais pouvori gerer 2 refuges (et qui sait plus)
cela impose une nouvelle contrainte...
Cela se ferait avec les meme volontaire dispo. car c est ds la meme ville.
Peut-on integrer cela de suite ?
je vois le formulaire aujourd hui
Évidemment, s'il n'y a pas de contrainte pour un volontaire, tu laisses les cases vides !1) le fichier s ouvre bien.
Question, faut il forcement mettre un "CoVolontaire oblige" ?
J ai des volontaire qui n ont pas de partenaire dans leur horaire disponible...il faut aussi les prendre en compte...
Ce message a semble-t-il été supprimé... par toi ! C'est pour cela qu'il n'apparaît pas.2) j ai poste un msg...qui n apparait pas ici...
C'est déjà assez compliqué avec un seul endroit. Commençons par essayer de mettre au point une solution pour un site. Si on y arrive, on verra ensuite comment adapter.Je vais pouvori gerer 2 refuges (et qui sait plus)
cela impose une nouvelle contrainte...
Cela se ferait avec les meme volontaire dispo. car c est ds la meme ville.
Peut-on integrer cela de suite ?
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Quand je saisi, Vol A -> Vol Exclu = Vol X
j imagine qu il n y a pas besoin de repréciser que le Vol X ne se joindra pas - non plus - au Vol A pour que le calcul d association des volontaires se fasse sans Bugs ?
Idem pour le covolontaire Obligé.
Note: Vol C + D...
Donc Vol D + C
...semble logique...
Bon voici le fichier rempli.
Bonjour,
Je crains que tu n’aies pas bien compris comment communiquer les disponibilités des volontaires.
En regardant la fiche d’un volontaire, tu dois pouvoir dire :
ce volontaire veut bien venir tel jour de la semaine, pour assurer telle pause si j’ai une place vacante.
Par exemple
Idilia est d’accord de venir
- pour n’importe quelle pause chaque lundi ;
- entre 12 et 18 heures chaque mardi ;
- pour n’importe quelle pause chaque vendredi.
Toutefois
pour autant que cela
- ne dépasse pas 2 jours pendant la même semaine (donc, cette semaine tu peux lui demander de venir mardi et vendredi par exemple) ;
- elle veut au moins 1 jour entre ses venues (donc, si tu l’appelles pour ce lundi, elle n’est pas disponible ce mardi, mais elle serait d’accord de venir ce vendredi) ;
- quel que soit le jour, le nbre de pauses (consécutives) ne peut dépasser 3 (donc, tu peux lui demander de venir lundi de 9 à 18 heures par exemple) ;
- et quand elle vient, Avalon ne peut pas être présente.
Par exemple, ceci est incohérent
Car tu dis : Hurini peut venir
- soit chaque samedi de 6 à 9 ;
- soit chaque dimanche de 6 à 9.
Mais pas plus de 7 jours pendant la même semaine !
----------
Effectivement, il suffit que l’un des deux refuse d’être présent avec l’autre.Quand je saisis, Vol A -> Vol Exclu = Vol X
j imagine qu’il n’y a pas besoin de repréciser que le Vol X ne se joindra pas - non plus - au Vol A pour que le calcul d’association des volontaires se fasse sans Bugs ?
-----------
Ça c’est moins vrai, par exempleIdem pour le covolontaire Obligé.
Note: Vol C + D...
Donc Vol D + C
...semble logique..
Pour que Avalon puisse venir et repartir avec Avatea, il faut que leur disponibilité soit la même les jours communs :
- lundi, ils sont d’accord de venir de 6 à 12 ;
- mardi, ils sont d’accord de venir de 12 à 21 ;
- jeudi, ils sont d’accord de venir pour n’importe quelle pause.
Et tous les deux, maximum 2 pauses !
- les samedis et dimanches, Avarea peut être choisi. Et si c’est le cas, il viendra seul !
Imagine que Avalon soit seulement d’accord pour une seule pause par jour.
Lundi, ils sont choisis tous les deux pour la pause 06-09 et que se passera-t-il si Avatea est aussi choisi pour la pause de 09-12 ? Comment Avalon va-t-il retourner chez lui ?
=> règle
Le « dépendant » doit avoir les mêmes contraintes que celles de l’« obligé » et les propositions pour les jours communs doivent être identiques.
Veux-tu bien corriger ton fichier en tenant compte de ces précisions.
Pose la question si tu hésites pour un cas particulier.
SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager