Offset avec VBA

Bonjour,

Eh bien ! l'archivage, je ne sais pas ! A cet égard, je me suis borné à introduire lors du lancement de QUART PAR AGENT un message indiquant que le mois en cours sur cette feuille allait être supprimé et demandant confirmation de la suppression (implicitement : si l'on n'a pas fait les enregistrements ou archivages souhaités, on s'interrompt pour les faire avant de passer au mois suivant...) Les conditions d'archivage n'ayant pas été définies je ne pouvais faire plus !

Je me suis remis dans le bain et opéré l'insertion dans le classeur de QUART PAR AGENT, donc raccordée, et lancée par un bouton à partir de la feuille MENU PRINCIPAL, qui comporte le tableau Equipes. Il me reste à tester la procédure, mais ce ne sera pas aujourd'hui (une urgence pour faire face à une fuite de machine à laver ! )

Pour boucler la démonstration, je prolongerai par l'insertion d'une feuille HEURES, pour montrer comment il peut être servi dans la foulée...

Mais je regrette l'absence, d'une part d'un tableau des Fériés annuel complètement établi, et d'autre part d'une notation normalisée des absences, qui permettraient de parfaire la démonstration...

Cordialement.

Salut!

Merci déjà pour l'effort fourni, les jours fériés ne peuvent pas l'être car ils ne sont pas fixes mais je pourrais vous envoyer les dates probables dans l'année...

Les absences sont très instables chez nous donc, on pourra le renseigner par mois .... Souvent même ça change par semaine....

Donc, ce sont des point difficiles à fixer... A mon avis ce sera mieux de prendre en tant que tableau ou plage variable comme ça je pense que ça pourrait être possible de les intégrer tout en tenant compte des variations possibles au fil des mois..

Cordialement !

Ça fonctionne, un petit point à régler pour éviter des erreurs dans la signalisation des équipes par rapport aux unités de roulement (mentionner deux fois la même équipe par exemple...), et un plus gros mais pour lequel je n'ai pas de solution définitive...

Il s'agit de cas changement de cycle... recomposition de la feuillle QUART PAR AGENT : elle doit pouvoir se faire dans les mêmes conditions (puisque l'on prélève les positions occupées sur la feuille QUART), mais je ne pourrais prendre en compte des disjonctions Equipes/Unités de roulement entre l'ancien roulement et le nouveau...

La seule chose que je vois possible :

  • actuellement, à l'initialisation du mois on indique les UR active par un X dans la 2e colonne (feuille CYCLE), et en cas de changement, on effaçait et on n'indiquait les UR active que pour le nouveau roulement en indiquant la date en 3e colonne
  • ce qui me paraît possible, c'est de modifier pour garder les X pour les UR maintenues entre les 2 roulements et selon le cas on aura des entrantes ou des sortantes, signaler par E les entrantes ou par S les sortantes, de façon à fournir une indication pour placer les équipes en continuité, sachant que si on déroge il faudra faire des ajustements manuels (même chose si on change des agents d'équipe...)
Je ne peux prendre en compte qu'une relation unique dans le mois... ce qui devrait tout de même couvrir l'essentiel des cas, le reste étant marginal...

Pour les Fériés, je suis un peu étonné de leur variabilité ! Aucun Etat ne fonctionne avec des fériés variables, il faut qu'ils soient prévisibles à long terme...

Pour les absences, elles sont instables par nature, mais tu n'as pas institué de support où l'on qu'on va les trouver et comment... Un problème clé de toute procédure, c'est l'adressage, qui doit être constant ou déductible d'élément constant.

Salut!

Comme je n'ai pas le fichier dont vous parlez , je ne peux pas trop me prononcer dessus ... Par exple la feuille cycle, dont je n'ai aucune idée de sa constitution...

En ce qui concerne les absences, il y'avait une feuille ABSENCES avec un tableau de 3 colonnes(agents, départ, et retour)...

Pour les fériés, les fériés calendaires sont connus et fixes(Janvier : 1er et 20; Mars : 8(pour les dames uniquement) et 26; Avril : 1er et 2; Mai :1er; Septembre : 22; décembre : 25.); à ceux ci il faut ajouter 5 fériés lunéaires(donc pas très sur en avance).

Si vous voulez , je peux vous envoyer un fichier avec quelques absences fixées, les jours fériés calendaires et les dates probables des fériés non calendaires.

Merci!

Bonjour,

Salut!

Comme je n'ai pas le fichier dont vous parlez , je ne peux pas trop me prononcer dessus ... Par exple la feuille cycle, dont je n'ai aucune idée de sa constitution...

En ce qui concerne les absences, il y'avait une feuille ABSENCES avec un tableau de 3 colonnes(agents, départ, et retour)...

Pour les fériés, les fériés calendaires sont connus et fixes(Janvier : 1er et 20; Mars : 8(pour les dames uniquement) et 26; Avril : 1er et 2; Mai :1er; Septembre : 22; décembre : 25.); à ceux ci il faut ajouter 5 fériés lunéaires(donc pas très sur en avance).

Si vous voulez , je peux vous envoyer un fichier avec quelques absences fixées, les jours fériés calendaires et les dates probables des fériés non calendaires.

Merci!

Les jours fériés pourront être dans une feuille ou une base de données avec possibilité de modifications avec une colonne date.......

Pour les absences on pourra aussi faire un tableau avec trois colonnes(nom des agents, date de départ, date de retour).....

A mon avis ça pourra régler ce soucis d'absence et de jour férié...

Merci!

Bonjour MFerrand,

Pour les Fériés, je suis un peu étonné de leur variabilité ! Aucun Etat ne fonctionne avec des fériés variables, il faut qu'ils soient prévisibles à long terme...

Pour les absences, elles sont instables par nature, mais tu n'as pas institué de support où l'on qu'on va les trouver et comment... Un problème clé de toute procédure, c'est l'adressage, qui doit être constant ou déductible d'élément constant.

Si vous n'avez pas encore implémenté le calcul des heures, vous pourrez m'envoyer le fichier sur lequel vous travaillez actuellement pour que je créé les feuilles ABSENCES pour les absences et FÉRIÉS pour les jours fériés..

Je pourrais les renseigner initialement pour que vous puisses exploiter leurs contenus dans le cadre du calcul des heures...

Sinon, si vous l'avez déjà fait.... C'est bon pour moi.

Merci et bonne journée !

Bonjour,

Avec le retour du Maréchal, je relance ce post pour le faire remonter pour la poursuite.

État :

On s'est arreté à L'implémentation des modifications des quarts.

Au par avant, les quarts par agents à partir des quarts par équipe était déjà implémenté ( je m'étais basé sur ça pour l'implémentation initiale du tableau de service dans mon entreprises)...

Le point suivant serait de prendre en compte les modifications des roulement dans les quarts par agents à partir des quarts par équipe.

Par ailleurs, je voudrais comprendre comment le raccordement se fait sur l'ancien mois pour la continuité des quarts sur le mois en cours.

Cordialement !

Merci!

Salut Maréchal,

Voilà maintenant un fichier d'expérimentation, vidé, où tu pars d'une situation vierge pour l'année 2018.

Les deux points qu'il me restait à soulever : dans l'ancienne version, le lancement d'une initialisation provoquait la vérification de l'existence d'une feuille Mois demandé (si trouvée on disait, déjà créée, existe...) ce qui se fait toujours, puis on cherchait une feuille du mois précédent car on assurait la continuité de cycle à partir du mois précédent. Ce n'est plus le cas, et on s'en passe, on mémorise l'année au départ, et on la maintient à jour.

Si une feuille précédente disparaît, le programme ne s'en apercevra même pas. L'inconvénient est sans doute que tu peux lui faire initialiser une feuille d'un mois passé, ce qui pourrait créer un certain bazar...

Il faudra sans doute que je vois à verrouiller cela.

Par contre, c'était le 2e point, il existe déjà un verrou en la matière s'agissant des modifications : tu peux effectivement demander une modification sur un mois antérieur au mois en cours, le programme t'informe alors que si tu confirmes, tout les mois qui suivent la date de ta demande seront préalablement supprimés (on reviendra à un mois en cours antérieur). En quelque sorte on te permet de faire des simulations et revenir en arrière...

Bonne journée.

Vous vous rappelez de ce post?

Si oui, j'ai besoin de votre aide pour son implémentation pour la prise en compte des modifications dans le cadre des roulements !

Par ailleurs, qu'en est il des modifications des équipes sans changements de roulement ?

Je vous sais très occupé .... Donc, des que vous avez du temps, veuillez jeter un coup d'oeil s'il vous plaît.

Pour le calcul des heures, j'ai déjà trouver la solution..

J'ai utilisé la formule de @steelson et j'ai copié le calcul des heures(j'ai fait ça sous forme de plage) autant de fois qu'il y'a d'agents dans le tableau de quart par agent.

Il reste juste la prise en compte des modifications.

A+

Bonjour,

J'espère que ta santé se rétablit rapidement...

Pour faire rapidement le point, j'ai le nettoyage des messages en retard sur 3 ou 4 jours, je ne suis pas sûr que ce soit complet mais le plus gros est fait (je suis remonté jusqu'au 1er février). Si j'en ai loupé cela ressortira si les intéressés se manifestent...

J'ai réglé ce faisant les questions sur lesquelles je pouvais répondre rapidement, et réservé 7 sujets demandant un travail plus approfondi, et surtout nécessitant une remise en mémoire de la question et de ce que j'ai pu avoir déjà fait. Je n'ai pas fixé d'ordre pour les traiter, mais sur les 7 il y en a 2 que je plaçais spontanément après les autres, pour des raisons différentes, mais dont le tien ! La raison est que j'y ai pas mal de choses à remémoriser et qu'il est préférable d'avoir éliminé de ma mémoire ceux qui me seront plus facile à régler avant de m'attaquer à nouveau à tes questions...

Entre temps, il me faut souffler un peu et m'aérer sur des questions nouvelles et autant que possible rapides à traiter... ce que j'ai fait ces quelques jours, concomitament avec des rendez-vous médicaux qui limitent ma disponibilité certains jours (je dois dire que j'ai aussi un rattrapage d'activités domestiques à faire...)

J'ai un des 7 sujets en chantier, que je pensais pouvoir régler rapidement mais les modifications à apporter me conduisent à recomposer la solution apportée, ce qui fait qu'il n'est pas bouclé dans la mesure où mes contraintes des derniers jours ne me laissaient pas un temps suffisant continu pour repenser la solution (type d'aléa qui peut survenir sur pas mal de sujets... )

J'ai été me remettre en mémoire mon post du 30 janvier, suite à ton message, et revu le fichier transmis à ce moment-là. Ce fichier ne comporte que les calculs de cycle, qui constituaient la 1re phase, en principe achevée ! Bien que je ne me souvienne plus si j'y ai apporté des modifications ensuite, mais si c'est le cas c'est très minime.

Le problème est que j'ai un lot de fichiers et un peu de mal pour établir lequel est la version en cours la plus avancée. Je pense que c'est celui que je vais te joindre pour information (au moins, car je ne sais s'il est fonctionnel...)

Cette version comporte la partie cycle, qui incorpore éventuellement les rectifications que j'aurais pu faire sur la versions que tu as. Un cycle est initialisé pour janvier (notamment pour me permettre de tester la suite).

La fonction suivante est le passage à l'établissement du Quart-Agents à partir des équipes... Apparemment j'ai remis la feuille modèle QUART PAR AGENT sur pied, j'ai apporté des modifications au code antérieur, mais ce n'est sans doute pas achevé car le test n'est pas fait.

J'ai rétabli une feuille MENU PRINCIPAL, à partir de laquelle doivent se gérer les équipes et le lancement du Quart Agent, et également se lancer les calculs horaires... Mais la composition de la feuille n'est pas achevée, et y figurent en notes des questions à voir dont il faut que je me remette en mémoire la teneur mais qui visiblement impliquent des rectifications sur ce qui est déjà fait avant de procéder aux tests.

Je ne te conseille donc pas de tester l'établissement du QUART PAR AGENT car tu risques d'avoir pas mal de surprises !

Pour poursuivre il est indispensable que j'analyse le code déjà écrit...

L'initialisation du cycle te fait définir un cycle théorique. Sur la feuille CYCLE, tu n'interviens que pour changer le mois en R2 (éventuellement l'année en R1...) pour initialiser un nouveau mois et si modification de roulement en cours de mois pour indiquer une date de changement en U2 et le nouveau roulement en U3. Le tableau à gauche te permet de définir la correspondance des équipes avec les unités de roulement définies, en col. N. Toutes les autres mentions sur la feuille sont portées automatiquement.

La feuille MENU PRINCIPAL te permet de définir les équipes à ta convenance dans le tableau des équipes, et lancer la composition de QUART PAR AGENT. Evidemment, tu dois pouvoir recomposer autant de fois que nécessaire cette feuille pour le même mois si tu introduis des rectifications qui doivent s'y répercuter (et bien sûr également si tu modifies le roulement...)

Il y a beaucoup de vérifications de cohérence lors de chaque action lancée et si certaines sont en place il me paraît certain que toutes ne le sont pas. Et la question des modifications en cours de mois n'est pas réglée, car en l'état cela te redéfinirait le Quart-Agent du mois en entier sur la base de la modification apportée. Il faut donc arrêter une méthode pour ne modifier qu'à partir d'une date donnée, et peut-être différencier 3 cas à partir du moment où la feuille initiale du mois a été établie : modification complète (on la recompose en entier), modification en cas de changement de roulement (recomposition n'affectant qu'à partir de la date de changement), modification sans changement de roulement (seules les équipes peuvent alors être affectées, à partir d'une date indiquée).

Tu peux imaginer qu'il faudra à chaque fois s'assurer que la modification demandée est possible par rapport à ce qui a pu être fait antérieurement...

Mais en tout état de cause, il faudra d'abord que j'analyse le code écrit, ce qui est à coup sûr le plus fastidieux. Mais j'espère que cela me permettra de juger s'il est plus avantageux d'opérer (comme je viens de l'évoquer) par modification successive (l'on ne codifie alors que pour la modification à opérer, la codification antérieure disparaissant...), ou en pouvant codifier plusieurs organisations dans le mois en précisant les dates (on aurait par exemple 3 tableaux équipes au lieu d'un, chacun pouvant couvrir un plage de dates du mois, ce qui permettrait de recomposer la feuille entièrement à chaque modification voulue). Dans le premier cas, la procédure de composition initiale demeurerait (nonobstant quelques modifs ou ajouts à lui apporter), mais il faudra établir des procédures spécifiques de modifications, dans le second, une procédure unique de composition mais qu'il faudra réviser entièrement pour qu'elle inclue les modifications.

L'évolution du travail sur ton fichier s'est faite au fil des discussions qui ont fait apparaître ton organisations bien plus mouvante que cela n'était indiqué au départ... S'il y a donc des particularités que je n'ai pas encore perçues en ce qui concerne les modifications, tu peux en profiter pour me le signaler avant que j'en arrive à la phase finale !

Bonne journée à toi.

Ci-joint fichier avec les réserves indiquées...

Bonjour MFerrand,

Je m'excuse d'avance, je ne voulais surtout pas desorganisé votre programmation. Je ne voudrais pas que vous perdez du temps sur des choses déjà réalisées pour raison de memoires(vu le temps fait sans y toucher et le nombre de messages que vous devriez avoir en attente).

Pour rappel :

La première version(version assez complète mais sans la prise en compte des modifications) :

Feuille MENU PRINCIPAL : on choisissait le mois et l'année puis devant les équipes on pourra utiliser (3, 2, 1, 0, -1, -2) selon le roulements pour le quart du 1er lundi(de la première semaine du mois) et les positions de répos des différentes équipes toujours selon le roulement (position 3 : 14-20, position 2 : 07-14, position 1 : 00-07, position 0, -1, -2 : position en nombre de jours de repos selon r, r=4, 5, ou 6). puis en cliquant sur initialiser mois, on a le quart mensuel par équipe ...NB : vous avez fait une programmation pour les quarts commencant à partir de zéro et une programmation à la suite d'un autre mois.

ensuite si on renseigne la ligne des agents par équipes, on peut generer le tableau de quart par agent.

La seconde partie : vous vous etes concentré uniquement sur l'implementation des modifications qui s'étaient déroulés avec succès après le debogage et la correction de toutes les bugs.

Il restait de regrouper ses deux en un seul fichier.

Par ailleurs, je pourrais vous envoyer en inbox la version finale que j'ai en inbox. je l'ai assez modifié et il y'a des informations confidentielles dessus que je ne peux deposer ici.

Je vous reviens plus tard.

Salut,

Parlant du fichier que vous avez chargé, c'est la version 1 donc plus amélioré que la version 0(qui ne concernait que la gestion des modifications de roulements uniquement).

Cependant, la version 1 comme vous l'avez dit, a assez de problèmes.

1. Quand on clique sur le bouton Initialiser mois, la feuille quart mensuel s'affiche à partir de la colonne J donc, le reste des colonnes est caché.

2. Si je choisis le roulement inferieur à 6, le choix des unités de roulements est arbitraire : par exemple, en fevrier, j'ai choisis le roulement à 4, une fois initialiser, ce sont les UR1, UR2, UR5 et UR6 sont actives... pourquoi pas UR3 et UR4 au lieu et palce de UR5 et 6.

3. le 15 fevrier 2018, j'ai essayé de modifier le roulement de 4 à 5.. mais j'ai un avertissement qui m'affiche : "Vous ne modifiez pas le roulement."

c'est loin d'être Ok, même pour les modifications...

Donc je vous mets ici la version 0 qui marchait très bien en ce qui concerne l'initialisation et la prise en compte des modifications. en inbox, je vous envoie un autre fichier plus complet sans les modifications.

Merci!

Bonjour,

Rapidement car je n'ai pas en mémoire tous les éléments... pour en discuter dans tous les détails techniques, mais je n'ai pas perdu le fil historique qui a conduit à la version 0...

Ce qui me gênait dans la première série de travaux, c'est qu'au travers des modifications apportées on était amené à recommencer un cycle à chaque fois, ce qui est contraire au choix d'un régime cyclique...

Je suis donc revenu aux fondamentaux en la matière : un cycle a un point de départ arbitraire puisqu'il faut bien décider du démarrage mais une fois démarré il se poursuit éternellement selon les règles définies pour son déroulement...

L'innovation dans ton cas c'est que le cycle reposait sur un roulement d'unités dont le nombre était susceptible de varier, il s'agissait donc de combiner le déroulement automatique avec la prise en compte de variations qui devaient pouvoir se faire automatiquement dans le cadre du cycle en cours, sans avoir à recommencer un cycle nouveau (soit redéfini, ce qui se traduisait par suppression du régime cyclique antérieur et création d'un nouveau régime cyclique).

La solution a été qu'à partir du critère de variation : décision de passage à un nombre d'unités de roulement différent, et choix d'une date de passage, on pouvait obtenir une auto-modification du cycle avec une règle de variation intégrée au déroulement du cycle.

Le jour de passage d'un roulement ancien à un roulement nouveau est commun aux deux roulements, ce qui rend la modification transparente et permet que le déroulement du cycle demeure entièrement automatique en intégrant les variations de roulement.

Compte tenu de tes critères d'organisation : équipes variables en nombre (ce qui conduisait à faire varier le roulement) et composition (changements hors roulement), il convenait de te laisser toute latitude de rattachement des équipes à telle ou telle position du roulement en cours. Tu conserves donc la maîtrise opérationnelle en la matière, pouvant à tout moment modifier la position d'une équipe (de même que sa composition...)

Mais en cas de changement de roulement, le choix judicieux de la date de changement (qu'il convient de bien maîtriser) te permet de réduire ces réaffectations d'équipes au minimum.

Un exemple avec un passage de roulement 3 à 4 et de roulement 4 à 3 : supposons que tu veuilles ajouter une équipe 4 dans le cas ascendant, et la supprimer dans le cas descendant, tu choisis le jour de passage de façon que ton équipe 4 soit en position 0 dans le cas ascendant, elle n'apparaîtra pas en service le jour de passage, mais seulement le lendemain et les équipes en place basculeront sur le nouveau roulement sans changement apparent, et de même dans le cas descendant tu la retires le jour où elle est en position 0 (repos) et le cycle se poursuivra sur le nouveau roulement sans heurt.

Mais de façon à pouvoir prendre en compte tous les cas, tu gardes toujours la possibilité de modifier le positionnement d'une équipe. On ne peut faire plus ! Cela te permet d'obtenir la situation que tu veux, quelle qu'elle soit sans perturber aucunement le cycle qui se poursuivra !

Par rapport à ton point 1, il n'y a pas de modification en ce qui concerne le cycle entre la version 0 et la version 1 (à part peut-être quelques points de détails). Tu y verras les colonnes A à I masquées, tu peux les démasquer pour voir leur contenu, tu y verras le cycle codifié sur l'année...

La version 1 ajoutait la production automatique de la feuille Quart-Agent, elle n'est pas achevée dans la mesure où les modifications ne sont pas prises en compte automatiquement et que le code est donc à revoir sur ce point.

Pour ton point 2, passant d'un roulement 6 à un roulement 5, c'est l'unité se trouvant en position -2 le jour du passage qui disparaîtra. Si tu veux faire disparaître l'unité 6, tu choisiras le jour en conséquence...

Pout ton point 3, ce message apparaît si tu indiques comme nouveau roulement celui déjà en place ! Si tu as indiqué 5 en U3 pour passer à 5, c'est que tu étais en fait déjà 5...

A noter que le roulement en cours apparaît en R3 (il y est mis automatiquement à l'initialisation) à condition que tu n'aies pas modifié cette cellule. Par mesure de sécurité, le programme va le cherche dans la zone masquée...

A noter aussi que le changement ne peut être introduit que dans le mois initialisé (en cours donc). Il y a donc une fausse manoeuvre quelque part.

Le problème à régler demeure l'édition de QUART PAR AGENT, plus précisément sa réédition intégrant des modifications. Dans la mesure où l'on doit pouvoir combiner situation initiale du mois jusqu'à une date donnée et situation modifiée à partir d'une date donnée, voire plusieurs modifications successives à des dates distinctes, cela ne peut se régler par un simple ajustement du code. Il faut prévoir le stockage des critères relatifs à chaque zone du mois pour que le programme puisse les retrouver.

Je te préviens dès que je serais en mesure de me consacrer à la question...

En attendant, encore une fois bon dimanche.

Bonsoir,

Bien copié!!

A+, Maréchal!

Bonjour MFerrand!

En attendant de finaliser la modification de roulement, je voudrais comprendre le code vba sur lequel se base la génération des X sur les tableaux de quart par équipe (le tableau de quart par agent étant une copie de celui ci).

Je voudrais adapter à un de nos centres qui lui faut H12 ie de 06h-13h et de 13h-18h. Ceux qui va demander la considération d'un roulement à deux équipes qui doivent pouvoir se relever en plus des autres roulement (3, 4, 5,6).... Si on peut maintenir la meme feuille et apporter des modifications aux codes pour créer une autre feuille qu'on nommera H12 pour différencier avec l'autres.

On utilisera le même tableau, c'est le même système que l'autre c'est juste qu'il y'aura pas la programmation automatique sur le reste des quarts.

On peut dire que ce sont les quarts 2 et 3 qui sont utilisés comparativement au système de roulement actuel , en laissant les autres colonnes de quart(00-07 et 20-00) vierge.

Merci!

Salut Saloum !

Juste pour te signaler que je suis encore en état de lire les messages !

Ta question est peut-être simple mais elle va réclamer un effort vraiment trop important en ce moment, et particulièrement aujourd'hui. Je ne suis en mesure de répondre que sur des questions simples, dans des configurations elles-mêmes simples, ou théoriques.

Mais ça va évoluer !

J'espère que tout va bien pour toi...

Bonne soirée.

Salut Saloum !

Juste pour te signaler que je suis encore en état de lire les messages !

Ta question est peut-être simple mais elle va réclamer un effort vraiment trop important en ce moment, et particulièrement aujourd'hui. Je ne suis en mesure de répondre que sur des questions simples, dans des configurations elles-mêmes simples, ou théoriques.

Mais ça va évoluer !

J'espère que tout va bien pour toi...

Bonne soirée.

Salut Maréchal !

Je ne voulais pas te déranger surtout avec ce mois de juillet qui doit être très chargé pour toi(selon la prévision)..

Je vais mettre ce que j'ai, peut être que ça sera juste que vous me guidez..

Portez vous bien!

Merci ! C'est chargé surtout parce que je dois me déplacer tous les jours, mais cette semaine exclusivement en ambulance...

Rechercher des sujets similaires à "offset vba"