Calendrier dynamique

Bonjour,

Je souhaiterai faire appel à vos lumières pour alimenter automatiquement un calendrier annuel avec différents critères.

Vous trouverez le document en pièce jointe :

En alimentant les différents tableaux de la feuille ‹ Données injectées ›, je souhaiterai que mon calendrier s’incrémente automatiquement.

J’ai déjà rempli des données en exemple.

Pour chaque cellule, je voudrais que la formule recherche dans les tableaux ‹ PERM ›, ‹ P19 ›, ‹ REU ›, ‹ TEL1 ›, ‹ TEL2 ›, ‹ FORM ›, ‹ ABS › ou ‹ TP › si elle voit une correspondance avec le jour, le créneau (matin / après-midi / soir) et le personnel en ligne 8.

Peut-être que la feuille ‹ Données injectées › doit être présentée de manière différente ?

J’ai une version Excel ‹ Microsoft Office LTSC Professionnel Plus 2021 › et malheureusement je n’arrive pas à faire fonctionner certaines formules pour pouvoir les tester.

Pourriez-vous m’aider s’il vous plaît ?

Merci à vous.

Bonjour

On fait quoi quand un même créneau est affecté à une même personne (6/9) sur 2 postes différents ?

Faisable par PowerQuey intégré à Excel

Pourquoi pas un seul tableau pour les Données injectées ?

Je rappelle que les tableaux structurés ne doivent pas contenir de lignes vides et doivent avoir des noms signifiants...

Bonjour,

[78cris] : Bonne question !
Pour le reste ji vois pas bo, surtout sans le recours à VBA

Pour les formules il suffit d'accorder les formules au nom de la feuilles (paramétre >< paramétrage) perso j'ai préféré param plus court et sans accent...

Pour le reste cette feuille données injectées est inutile. YAKA injecter directement sur le calendrier... Un petit USF serait un plus ?

Et il faudra défusionner la zone de légende sinon pas de copier coller possible.

Et il faudra aussi défusionner la colonne Date ou en rajouter une (masquée) pour attribuer une date à chaque ligne comme j'ai fait colonne A

Mébon cette dernière remarque c'est si on travaille avec macro, parce que moi les formules demandés... j'y crois pas. J'ai fait les transferts à la main...

EPI après le dynamique j'y crois pas trop non plus surtout si on reste avec des formules...

A+

Bonjour,

Je vous remercie pour vos premières investigations et retours.

"On fait quoi quand un même créneau est affecté à une même personne (6/9) sur 2 postes différents ?"
-> Effectivement, cela peut arriver qu'il y ait des conflits. L'idée serait que dans le calendrier cela reste vide peut-être ? pour que l'on puisse comprendre que dans les données il y a un conflit. Je ne sais pas si cela est possible techniquement ?

"Faisable par PowerQuey intégré à Excel"
-> Je ne connais pas du tout le PowerQuey... :/

"Pourquoi pas un seul tableau pour les Données injectées ?"
-> C'était effectivement une interrogation de ma part. Si c'est plus simple, je peux créer un seul et même tableau avec une colonne supplémentaire pour la typologie.

"Je rappelle que les tableaux structurés ne doivent pas contenir de lignes vides et doivent avoir des noms signifiants..."
-> Pour envoyer le fichier, j'ai rapidement mis des données mais bien sûr, il n'y aura pas de lignes vides dans mes tableaux.

Pour l'idée de travailler en macro, je ne sais pas trop. Je ne serai pas la seule à injecter des données et certains de mes collègues ne sont pas forcément à l'aise avec Excel. A voir comment cela pourrait se présenter ?

Bonjour,

Pour répondre à cette dernière question il manque au moins une donnée essentielle :

Combien y a-il de postes à combler chaque jour et quels sont les qualifications possibles pour chaque postes et sur ce plan ton planning ne dit pas grand chose.

Car il faut que ton UserForm tienne compte de ces contraintes :

Si par exemple il te faut 6 caissières, 2 accueils,12 vendeurs, 4 sécurité 2 ménages et 5 téléphone, ton Usf doit savoir qui a les qualif nécessaire pour chaque job et pour te dire stop j'ai assez de caissière ou de Tel mais pas assez de vendeurs.

D'ailleurs sur ce plan ton planning est pas trop causant. Si c'est un hôpital que tu gères tu n'est pas près de savoir combien tu auras de toubib ou d'infirmière dans chaque service !

J'ai néanmoins à nettoyé un peu le bouzin pour commencer à ouvrir la discussion... Il te faudra aussi préciser la notion de semaine réduite (et de fermeture mais ça j'imagine un peu...

J'ai supprimé la légende pour l'instant car elle n'est pas utile, ainsi que les stats pour ne pas mettre la charrue devant les boeufs...

A+

Bonsoir,

Effectivement mon fichier Excel n'était pas très clair, navrée...

Je travaille dans une bibliothèque ; dans laquelle nous faisons :
- pour l'ensemble des personnels et vacataires des permanences [PERM] à l'accueil sur deux types de créneaux : matin et après-midi
- pour l'ensemble des personnels et vacataires des permanences à l'accueil le soir [P19]
- une dizaine de personnels peuvent faire des formations [FORM] auprès des étudiants le matin, l'après-midi et exceptionnellement le soir
- pour l'ensemble des personnels des réunions [REU] annuelles en fonction des missions
- pour quelques collègues des jours de télétravail fixe [TEL1]
- Les temps partiels [TP] et les absences (congés, déplacement, etc.) [ABS]

L'idée de ce calendrier dynamique est donc d'intégrer l'ensemble de ces temps de travail ou absences pour établir à l'année un quota de permanences [PERM / P19] ], de formations, de réunions, de télétravail, etc.
L'idée est de voir la charge de travail des collègues. Sur certaines périodes, nous rencontrons des difficultés pour effectuer notre quota de permanences ; que nous comblons par des vacataires. Ce tableau nous permettrait d'en comprendre les raisons.
Enfin, nous sommes en train de voir s'il est également possible d'ajouter un deuxième jour de télétravail pour les collègues qui le souhaitent et voir sur l'année s'il y aura des périodes de difficultés et rebondir.

De ce fait, l'objectif du fichier n'est pas de dire : j'ai mes trois personnels pour la plage de permanences du matin et stop je peux m'arrêter là.

Est-ce que ces explications vous aident un peu plus sur mes besoins ?

Merci à vous

Je comprend que toutes les informations sont quasiment aléatoires pour les prévisions de présences et (à postériori) pour modifier en cas d'absence.

Je vais essayer d'avancer avec ça et je te soumettrai comment je vois la chose dans la semaine car pour faire simple pour les utilisateurs c'est quand même un peu pointu....

Pour l'instant je pars plutôt sur une idée de calendrier annuel : Parce que je ne vois pas bien comment on peut articuler l'enchainement des 2 années + les stats dans ce contexte. 1 calendrier pour chaque année me semble potentiellement plus adaptés (pour l'instant)

Il y aura juste à faire une copie du calendrier vierge et à modifier la cellule A2 du prochain calendrier pour avoir la prochaine année scolaire.

Bon à part ça si quelqu'un à une meilleure idée, je ne me vexerai pas...

Merci pour ce retour positif.

Je suis bien partie sur une année mais scolaire d'où le 2024-2025. L'idée serait de commencer le 1er septembre et de finir le 31 août. Est-ce envisageable ?

Au plaisir d'échanger la semaine prochaine.

Merci beaucoup

Ok Bon WE

Bonjour

Une solution PowerQuery

Un unique tableau source

En cas de conflit le créneau est attribué à la 1ère personne positionnée sur le créneau et le mot Conflit en rouge remplace le nom du Poste dans le calendrier

En principe VBA n'est pas nécessaire quand on utilise POwerQuery

Sauf que les changements de noms du personnel va changer les titres des colonnes et dans ce cas les MFC vont sauter.

J'ai donc prévu le code pour actualiser et rétablir les MFC

Bonjour 78chris,

Je viens de tester le fichier. Merci beaucoup pour cette avancée !

J'ai tenté de rajouter plusieurs créneaux (Données injectées) pour voir son fonctionnement :

image

Voici le résultat dans le tableau après avoir appuyé sur le bouton "MAJ" :

image

J'ai l'impression (c'est peut-être une erreur de ma part) qu'il prend en compte la première personnel assigné à un créneau et que pour les suivants c'est enlevé : personnel 4 pour le matin et personnel 1 pour l'après-midi.

Bonjour

C'est l'ajout du contrôle de conflit où j'ai introduit une erreur

Bonjour,

Je viens de faire à nouveau des tests et malheureusement j'ai toujours le même problème. C'est le personnel 4 et le personnel 1 qui sont pris en compte.

RE

Pour moi c'est cohérent

image

J'ai 6 lignes de PERM le 09/09 pour P1, P2, P4, P5 et P9

As-tu utilisé le bon ficher ?

Re,

Oui oui j'ai utilisé le bon fichier. J'ai essayé d'en ajouté à nouveau dans la liste et le comportement est encore bizarre :

image image

RE

Arf cette histoire de conflit n'est pas simple

Je pense que c'est OK cette fois

Bonjour,

Je vous remercie pour votre retour et je suis navrée du délai de ma réponse.

ça marche c'est super :D

Par contre, j'ai regardé dans la macro mais je n'ai pas trouvé : comment faire si je dois ajouter un personnel 22 par exemple et qu'automatiquement le tableau le prenne en compte ?

Je poursuis mon alimentation de fichiers pour voir si tout fonctionne :D

Merci !

Bonjour

Cela ne se passe pas dans le VBA mais dans PowerQuery

La plage actuelle du personnel est définie par une plage nommée Personnel (voir gestionnaire de noms)

La formule tient compte automatiquement de son élargissement éventuel

Cependant une étape de la requête ne gérait pas cet agrandissement

J'ai mis ton personnel sous forme de Tableau structuré (j'avais failli le faire dès le début puis avait oublié) et ajouté le statut pour séparer les blocs personnel et vacataires dans les en-tête du calendrier car l'ordre alphabétique des noms réels les mélangeait

Bonjour

Effectivement, j'ai trouvé comment accéder au PowerQuery et j'ai pu commencé à regarder. Il va falloir que je prenne le temps de comprendre comment ça fonctionne ; c'est tout nouveau pour moi !

Le fichier est parfait ! J'ai pu remplir toutes les données que je voulais. Je suis trop contente ! Merci beaucoup !

J'ai juste une dernière question, comment fonctionne le 'Conflit' ?
Pour certaines confrontation, j'ai l'impression que ça fonctionne bien et pour d'autres, la cellule est vide.

Merci à toi

Bonne journée

Bonjour

C'est fait dans la requête Planification

On numérote les lignes (Indexation)

On regarde combien il y a de planifications pour un même créneau et combien de personnes différentes

Si une seule personne pour plusieurs créneau on récupère l'index et dans ce cas on remplace le poste de la ligne par le mot Conflit.

On réduit à une info conflit pour le créneau et d'autre part on filtre les OK puis on rassemble ces 2 listes

En vérifiant, je vois que j'ai limité à 2 affectations d'une même personne mais si elle a plus de 2 affectations sur un même créneau cela ne marche pas

A l'étape Personnalisé1, il faudrait modifier la formule en remplaçant =2 par >1

if [Nombre]>1 and [NbP]=1 then List.Max( Table.Column([Tabl],"Index")) else null
Rechercher des sujets similaires à "calendrier dynamique"