Astuces pour planification

Content de te voir réapparaître !

Le mieux serait que tu l'utilises parallèlement en suivant les procédures...

Tu pourras voir si ça répond aux besoins, et aussi, comme je l'ai dit mes tests n'ont pas été exhaustifs, donc un bogue risque toujours de surgir : me le signaler et dans quelles conditions ça apparaît...

C'est ce que je fais quand je modifie un programme, je fonctionne en parallèle pendant quelques mois, avant de basculer une fois que les résultats sont les mêmes de part et d'autre pendant une période suffisante.

Cordialement.

Bonjour,

Je me permets de revenir vers toi, pour mon fameux tableau de répartition. Il est parfait, très bien réalisé le problème c'est sans doute par le fait, que je ne peux le réaliser par moi-même (pour l'avenir) vu la complexité du langage VBA lorsque je vais dans le visual basics.

En revanche j'aurais une modification à faire, je ne peux malheureusement pas l'utiliser pour le moment, puisqu'il m'a été demandé lors de la réalisation du planning manuellement de le finir par la date du 15 mai. Du coup le tableau que tu m'as réalisé la date de début doit être modifiée, ce qui évidemment décale tous les noms.

Pense -tu que cela est possible que tu le modifie, j'espère que cela ne prendra pas trop de temps.

Mon employeur a voulu que je passe une formation sur le VBA, mais je t'avoue que j'ai essayé de comprendre ton fonctionnement sur le planning, c'est d'une telle complexité.

En tout cas je te remercie beaucoup pour ta patience et ton talent !!

Merci

Bien le bonjour,

Oui, recadrer sur mai au lieu de novembre ne devrait pas être très compliqué, mais il va me falloir prendre le temps de me replonger dans ton appli, et je suis pas mal pris en ce moment... un petit délai sera nécessaire.

Il faudra qu'ensuite on détaille ce que tu ne comprends pas. Si tu t'es un peu mise à VBA, il n'y a pas de raison que ça continue à t'échapper...

Cordialement.

Bonjour,

Je te remercie beaucoup, ça sera possible qu'il sera prêt pour la semaine du 17 avril. Après j'aurais plus de temps pour te présenter les problèmes que je rencontre.

En tout cas merci pour tout.

Bien à toi.

Bonjour à toi,

Petit message pour quelques indications avant que tu commence à travailler sur mon fichier (urgence est moins importante), je suis en train de le faire avec l'ancienne méthode pour le moment. afin que le tableau soit parfaitement utilisable pour les prochaines et qu'on est plus à y revenir.

Lorsque j'actualise la nouvelle période (mai à octobre), le lundi 08 mai ne s'affiche pas en jour férié, du coup malheureusement il y a un décalage d'un nom, par rapport à ma nouvelle période (mai à octobre).

De plus petite précision: lorsque le mardi et férié, le lundi est considérer comme férié (donc 3 plages horaires) avec roulement du week-end cela est pareil pour le jeudi qui est férié avec le vendredi qui sera sur 3 plages horaires avec roulement du week-end. Seul le mercredi férié (par ex: 01 novembre 2017) est bien sur 3 plages mais les autres jours se sont pas considérés comme fériés et le roulement du mercredi est un roulement de semaine.

je te le précise pour la programmation des prochaines périodes..

Quand tu te penchera sur mon fichier si tu as d'autres questions, n'hésite pas.

Bien à toi

Ah ! là c'est une révision globale du mécanisme, les règles sont modifiées :

Donc :

  • Lundi Férié => Lundi traité en Férié
  • Mardi férié =>Lundi et Mardi traité en férié
  • Mercredi férié => Mercredi traité en férié
  • Jeudi férié => Jeudi et Vendredi traité en férié (Samedi pas affecté, traité en Samedi)
  • Vendredi férié => Vendredi traité en férié (Samedi pas affecté, traité en Samedi)
  • Samedi férié => Samedi traité en férié

Et on aurait comme périodes : 1er novembre - 15 mai et 16 mai - 31 octobre ?

Le mieux serait peut-être de rendre ces périodes variables, tu les fixes selon décision...

... et peut-être même, pouvoir passer au planning suivant avant la fin de la période.

On aurait une zone de chevauchement... Mettons : tu planifies jusqu'au 15 mai. Le 1er mai (ou le 2 ! ) tu bascules sur un planning 1er mai-15 novembre. Et le 1er nov. (le 2!) tu bascules pareil sur 1er nov.-15mai. Ce qui permettrait peut-être de mieux assurer les raccords entre 2 plannings successifs.

A voir

La grosse modif. restera de toute façon le traitement des FE-SA-DI avec tes nouvelles dispositions.

Bon weekend.

Un petit bonsoir... J'ai relu le noyau principal du programme, me souvenait pas avoir fait tout ça ! On devrait pouvoir régler les deux modifications sans trop bouleverser : modulation sur les dates de début et fin, et extension des fériés.

Je te tiens au courant.

Bonne soirée.

Bonjour,

"Et on aurait comme périodes : 1er novembre - 15 mai et 16 mai - 31 octobre ?

Le mieux serait peut-être de rendre ces périodes variables, tu les fixes selon décision..."

Oui voila exactement, en fonction des jours férié pour la période suivante on déborde un petit peu par ex: pour la période allant de mai à octobre, nous avons déborder jusqu'au 5 novembre (pour que le jour férié soit déjà rempli). Le mieux effectivement serai de rendre comme tu l'as dit les périodes variables, et modifier les dates si possible (en fonction).

Je vais t'envoyer le dernier planning que je viens de terminer mis à jour jusqu'au 5 novembre, pour tu puisse retravailler sur une bonne base pour programmer les prochaines répartitions. .

Tu pourras remarquer qu'il y a un autre secteur, le fonctionnement est exactement le même que pour celui de d'habitude, avec le même nombre de créneau pour le week end et jours férié.. Seule différence : la liste qui est beaucoup plus petite et le roulement du week-end (le médecin inscrit effectue le week-end du samedi et du dimanche entièrement). Si tu peux également faire la programmation pour cette liste (dans le cas ou cela te rajoute trop de travail, on laisse tomber).

Merci beaucoup

Bonsoir,

Pour le moment, ton 2e planning restera de côté, terminons la mise en place du premier... Et selon ce que tu dis, les règles ne semblent pas tout à fait les mêmes (weekend complet), il faudra voir tout ça plus précisément...

J'avais engagé la révision avant hier : un fonction pour calculer selon les nouvelles dispositions, mais il faut balayer toutes les procédures pour intégrer les modifications...

Sur le fonctionnement rien de changé, un planning succède au précédent, et il n'y en qu'un actif à la fois, mais le lancement de la réinitialisation commence par le choix des dates de départ et d'arrivée, j'ai mis en place un Userform pour cela.

La date de début est proposée en en relais direct de la fin du précédent (le lendemain) mais on peut la faire varier jusqu'à 30 jours en arrière (évidemment pas dans l'autre sens, ça créerait un trou...).

La date de fin est proposée à 6 mois après la date de début théorique, avec possibilité de l'augmenter jusqu'à 30 jours... J'ai en principe prévu de ne pas pouvoir remonter, mais peut-être faudrait-il pouvoir remonter jusqu'à 6 mois ou 5mois et demi de la date de début effectivement retenue car dans le temps cela entraînerait un glissement vers l'avant qu'il faut pouvoir corriger le cas échéant. Je verrais ça, j'avais été au plus vite ainsi car cela homogénéisait la programmation mais on peut faire autrement...

A partir de là il faut vérifier toutes les procédures en suivant le processus de création dans l'ordre, c'est toujours fastidieux ce genre de choses car il faut s'assurer que chaque ligne de commande n'appelle plus d'élément enlevé et intégre s'il y a lieu les nouveaux éléments. A la fin, tests pour récupérer ce qui a été loupé au passage...

Pas plus avancé, aujourd'hui c'était pas le jour ! J'ai fait un autre truc que je croyais simple pour me remettre en forme . Pas probant, débogage délicat et j'ai réussi à compliquer au lieu de l'inverse... Il est vrai que j'ai avalé un calmant ce matin, que je prends rarement et jamais plus d'un comprimé par 24h car ça a sur moi un effet fortement soporifique. Pas la peine ensuite de chercher à me réveiller !

Bonne soirée.

Bonjour,

C'est parfait pour le choix des dates d'arrivée et de sortie,

"La date de début est proposée en en relais direct de la fin du précédent (le lendemain) mais on peut la faire varier jusqu'à 30 jours en arrière (évidemment pas dans l'autre sens, ça créerait un trou...)." Non le lendemain c'est parfait, c'est plus la date de fin du prochain planning qui peut varier.

"La date de fin est proposée à 6 mois après la date de début théorique, avec possibilité de l'augmenter jusqu'à 30 jours"... C'est exactement ce qu'il me faut.

Je te laisse faire pour le côté fastidieux, tu pense que tu pourrais le terminer avant la fin de cette semaine (j'ai un patron hyper exigeant,qu'il pense qu'il suffit simplement d'un liste déroulante pour changer les noms "impossible de lui faire comprendre la complexité du tableau")

Je te remercie beaucoup en tout cas

Bonjour,

En principe j'avais fait la révision du processus jusqu'à avant le remplissage du planning ( et j'ai interrompu sur l'ensemble du week-end... ). Il y a des changements à faire dans cette proc. mais ils sont balisés, cela ne devrait pas poser de difficulté. Normalement, pas à toucher la partie mise à jour, mais je dois vérifier que le raccordement avec la proc. de remplissage demeure cohérent.

Ce qui risque de s'avérer le plus délicat, c'est la mise en route au démarrage... Je t'en reparle... (car il serait souhaitable que tu soies en mesure de la faire, même si cela ne sera logiquement à faire de cette façon qu'une fois, ensuite les choses s'enchaineront d'un planning à l'autre, mais cela t'assurera de maîtriser le processus et de pouvoir intervenir pour y opérer des corrections le cas échéant).

Bonne journée.

Bonjour,

Tu as parfaitement compris, il faut que je puisse changer au cas échéant. Peux-tu supprimer directement de la liste ces 4 noms qui n'y figureront plus (Dr DELOBEL Chris, Dr DELOBEL Cath, Dr BENKIRANE Sof, Dr SALZARD PH)

Je te remercie, bonne fin de journée

Bonsoir,

Il me reste quelques tests de vérification que je ne me suis pas planté dans les modifications (qu'à la moindre manoeuvre VBA ne se mette pas à hurler ! ) et je te passerai la main...

Il faudra pour démarrer mettre en place une liste générale à jour (ensuite le dispositif de mise à jour permettra d'assurer la mise à jour). Et mettre en place les éléments du planning précédent sur lesquels va s'appuyer le programme pour constituer le nouveau planning : il sont peu nombreux (mais ça te permettra de voir de plus près les rouages du fonctionnement).

A+ Bonne soirée.

Bonjour,

Un petit retard, un point de débogage que j'avais différé de détecter et éliminer car pas assez de temps à y consacrer en continu. Je ne devais pas avoir les yeux en face des trous lorsque j'avais mis à jour ce fragment, car 4 anomalies concentrées au même endroit, qui sautaient aux yeux une fois la zone circonscrite. Comme j'ai rectifié l'ensemble en bloc, je ne sais d'ailleurs laquelle précisément provoquait l'arrêt, mais aucune autre erreur n'est apparue. On peut donc passer à la suite...

Pour pré-préparer ta prise en main, il faudrait que tu me communiques la fin de ton planning actuel (les 15-20 derniers jours suffiront), et que tu disposes d'une liste alphabétique active pour remplacer celle que j'ai qui ne doit pas être tout à fait à jour. Une liste à jour au moment du changement. Par la suite, tu procèderas aux modifications au moyen du programme de mise à jour...

Les modifications sont intégrées à la liste, avec les dates d'effet en entrée ou en sortie et le programme tient compte de ces dates pour le planning : par exemple s'il tombe sur un nom à une date où ce nom est noté sorti antérieurement, ou bien entré ultérieurement, il ne le prendra pas.

Et lors des mises à jours (noms entrés ou sortis, avec dates d'effet), il rebalaie la partie de planning concernée en fonction des dates pour l'actualiser.

Lors de la mise en place d'un nouveau planning, la liste est épurée des sortis (antérieurement à la date de début du planning) et des mentions d'entrés également antérieures.

Pour le démarrage, il convient de mettre une liste à jour en place pour amorcer le processus, qui se régulera par la suite...

Cordialement.

Bonjour,

Je te joins les quinze derniers jours du planning, pour une version plus actuelle avec la liste que tu m'as demandé.

Merci j'espère que l'on en aura bientôt finis =)

Cordialement

Bonjour,

J'allais commencer à te considérer perdue !

Petite erreur de ta part : ton fichier fournit un fragment de planning du 23 octobre au 5 novembre...

Ce que j'ai demandé c'est la fin du planning en cours (dont tu as dit qu'il devait aller jusqu'au 15 mai), de façon que je puisse mettre en place les éléments clés de ce planning arrivant à terme (manuellement), pour que tu puisses initialiser le planning suivant (et le reste suivra).

Cordialement.

Bonjour,

Oui effectivement c'est une erreur de ma part !

Je te joins le fichier avec le planning actuel

Merci

Bonsoir,

Voilà le fichier apprêté pour pouvoir l'initialiser sur une nouvelle période...

Tu n'as normalement qu'à appuyer sur le bouton Réinitialiser... Choisir les dates de début et de fin.

Tiens compte que pour la date début, compte tenu que l'on n'a intégré que la fin du planning précédent du 29 avril au 14 mai, la date proposée est naturellement le 15 mai, tu peux remonter pour débuter plus tôt mais pas au-délà du 2 mai car tous les jours qui précèdent sont dimanche, samedi ou fériés, le 2 est le dernier jour ouvré permettant de réinitialiser...

Une fois validé les dates, le nouveau planning doit s'afficher...

Tu auras une feuille de "sauvegarde" de l'ancien planning, que là tu peux tout de suite supprimer car ne reflétant pas le planning de toute la période antérieure...

J'ai substitué ta liste à celle que j'avais antérieurement. C'est à partir de là que tu opèreras les mises à jour.

J'ai ajouté une feuille à ton intention, que tu pourras déplacer ailleurs, descriptive des deux processus qu'accomplit le programme : réinitialisation semestrielle et mise à jour de la liste., chacun étant lancé par un bouton.

Cela résume les actions réalisées par chacun en indiquant les procédures qui opèrent, ce qui devrait te permettre de voir comment elles s'imbriquent...

Exemple, la réintialisation, le bouton lance la proc. RéinitCal. RéinitCal est mentionnée, et sur le même alignement en-dessous, les actions réalisées à partir de commandes figurant dans cette procédure. Elle utilise d'autres procédure, un peu plus bas, tu trouves RéfInit, ce que fait RéfInit et mentionné sur le même alignement que la mention RéfInit. Quand on revient à l'alignement précédent, c'est que les commandes indiquées se trouvent à nouveau dans RéinitCal...

Cordialement.

Bonjour,

Quelle merveille !! C'est top je te remercie.

ça va me faciliter la vie et surtout du temps =).

Juste une petite question (si admettons lorsque j'active une répartition allant de nov-mai 2019 par exemple, et qu'un jour férié prend un roulement de semaine et pas de week-end. Quelle est la démarche à suivre pour rectifier cette petite erreur.) Histoire de ne pas venir crier Au secours dans 2 ans lol.

En tout cas je te remercie pour tes précisions et ton aide précieuse,

Cordialement

Bonjour,

si admettons lorsque j'active une répartition allant de nov-mai 2019 par exemple, et qu'un jour férié prend un roulement de semaine et pas de week-end.

Pour 2019, tu as un peu d'avance ! 3 plannings d'avance ! Si tu avançais ainsi, tu ne pourrais plus gérer le planning en cours...

Aucun verrouillage par rapport à la date actuelle ne t'empêche de le faire... Ce qui te permet de créer des simulations avec des copies du classeur... Mais chaque planning prend appui sur le précédent pour définir les paramètres de démarrage, soit où en est le tour et l'état de la liste. Si tu introduisais une erreur se répercutant sur ces paramètres, l'erreur se répercuterait...

Prenons un exemple : X figure dans le planning vers la fin du planning en cours, tu passes trop tôt au planning suivant, une modif. affecte X qui sort avant d'avoir effectué son tour, modification que tu n'as pas pris en compte dans le planning en cours, tu es passée au planning suivant à partir d'un planning en cours non mis à jour et ne correspondant pas à la réalité, tu auras une erreur (décalage) dans ton nouveau planning que tu ne peux rectifier qu'en modifiant manuellement les paramètres de démarrage, ce qui n'est pas aisé (rechercher dans le "vrai" planning précédent les noms qui auraient dû être récupérés pour servir de référence pour le nouveau planning), et en introduisant la modification affectant X à la date de début du planning, ce qui le fera se recalculer entièrement.

Il vaut mieux l'éviter donc !

Mais si tu veux effectuer des simulations, rien ne t'empêche de faire une copie sur laquelle tu pourras opérer sans risque...

Quant à ta question, qui suppose qu'un jour férié ne soit pas reconnu comme tel... !

Cela ne doit pas se produire, donc si cela se produisait c'est qu'un bogue est passé inaperçu. Il faudra donc en détecter la source pour le corriger.

La liste des fériés figure en colonne F de LISTE. En F1 l'année de référence pour le calcul des fériés est celle de la date figurant en J2, qui sera selon le cas l'année en cours ou l'année précédente au moment du changement. Elle se modifiera lorsqu'on change la date en J2 lors du passage, si l'année change.

Mais on liste les fériés sur deux années : supposons que la date en J2 soit novembre 2017, les fériés de 2017 et 2018 sont listés. Le planning suivant sera à cheval sur 2017 et 2018 : les jours fériés de la période sont déjà listés ; lors du passage au planning suivant, la date en J2 passera à mai 2018, le planning sera entièrement en 2018, les fériés de 2018 étaient déjà dans la liste, lors du recalcul, la liste comprendra les fériés de 2018 et 2019.

Soit les fériés nécessaires pour le calcul de la période suivante sont introduits dans la liste à la mise en place de la période précédente, ce qui fait que lors du passage d'un planning au suivant on ne dépendra pas d'un recalcul pour la détection des fériés.

J'espère que mon explication n'est pas trop embrouillée ! Si l'année est modifiée lors du changement (ce qui sera le cas une fois sur deux), le recalcul se matérialisera après exécution de la procédure de réinitialisation, mais la détection des fériés se fera sur la liste avant recalcul, dans laquelle ils figurent déjà...

Je ne vois aucune raison pour que l'erreur que tu indiques se produise ! mais s'il arrivait qu'elle survienne, tu me saisis car il faudra se repencher sur le code pour détecter la source pour laquelle aucun indice préalable n'existe...

Lorsqu'une erreur d'exécution se produit, tu as un message, avec un numéro d'erreur, tu cliques sur débogage, tu as une ligne surlignée en jaune, tu peux tester la valeur des variables au moment de l'erreur en passant dessus avec la souris, tout cela fournit un faisceau d'indices pour la recherche... C'est un peu moins simple lorsqu'une erreur est détectée par le compilateur avant exécution, mais il y a aussi des indices... Les indices peuvent parfois induire en erreur dans la recherche de la source mais ils permettent d'orienter la recherche...

Mais dans le cas où une erreur affecte le résultat attendu sans déclencher d'erreur d'exécution, c'est un peu plus compliqué, car aucun indice préalable, et il faut se livrer à une série de tests pour contrôler les résultats et leur conformité à différent stades de l'exécution, dans le contexte où l'erreur est survenue. Avec un peu de chance on arrive à mettre le doigt dessus assez vite... mais c'est loin d'être toujours le cas ! Pour ma part, quand je ne tombe pas rapidement dessus, je me livre dans ce cas à un "exécution manuelle", je refais manuellement tout ce que fait le code en vérifiant les résultats intermédiaires, ce qui est assez long mais permet tout de même en principe d'arriver à cerner le point où le calcul dérape et n'est plus conforme au résultat qu'il devrait produire...

Te guider à l'avance dans de telles recherche n'est guère possible... Si une erreur survient, on l'utilisera de façon didactique pour te roder aux recherches d'erreurs. Mieux vaut mettre l'accent au départ sur la compréhension du code, laquelle s'avère toujours nécessaire si l'on doit rechercher une source d'erreur.

Cordialement.

Rechercher des sujets similaires à "astuces planification"