Microsoft 365 Gérer automatiquement vacances et jours fériés fiches horaire

pamonnier

XLDnaute Junior
Bonjour,

Je bloque sur la possibilité d'importer et d'intégrer mon tableau de vacances dans mes formules. Je vais essayer de lister ce que j'essaie de faire si on peut m'aider
Le but est d'automatiser la feuille pour les personnes n'ayant pas ou peu de connaissances excel

- Aller chercher le planning des vacances scolaire de la zone A (j'ai créé une nouvelle feuille mais à chaque fois que j'ouvre il me demande la confirmation de téléchargement des données via l'adresse web que j'ai utilisée)
-Donc supprimer la demande de confirmation de connexion à la BDD éduc nat et mettre à jours la BDD des vacs scolaires en arrière plan
- Aller chercher les jours fériés de l'années de la feuille

- Ces 2 données doivent pouvoir être intégrées dans ma formule qui va chercher quelle semaine nous sommes (paire/impaire) / si on est en vacances / si c'est un jour férié / importer les horaires fixes de la page paramètres "10 jours travaillés à renseigner / importer les horaires théoriques .

Voici ma belle formule dans laquelle il faut que je rajoute (modifie) pour intégrer les vacances / Jours fériés

=SIERREUR(SI(EST.IMPAIR(NO.SEMAINE.ISO($A6));(SIERREUR(RECHERCHEX($A6;Paramètres!$A$18:$A$98;Paramètres!B$18:B$98;(RECHERCHEX($A6;Vacances!$A$1:$A$298;Vacances!$B$1:$B$298;SI(RECHERCHEX($B6;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1)=0;"";RECHERCHEX($B6;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1));0;1)));0));(SI(EST.PAIR(NO.SEMAINE.ISO($A6));(SIERREUR(RECHERCHEX($A6;Vacances!$A$1:$A$298;Vacances!$B$1:$B$298;SI(RECHERCHEX($B6;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1)=0;"";RECHERCHEX($B6;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1));0;1);0));"")));"")

je voulais faire avec ça mais ça ne peut pas se faire sur un tableau complet
=SI(ET(F2>=B4;F2<=C4);"Vacances"; "NON")
Je vous partage le fichier en question.

@p56 si jamais ....

Merci d'avance
 

Pièces jointes

  • Fiches Horaires Mai 2022 Avril 2023.xlsm
    134.5 KB · Affichages: 54
Dernière édition:
Solution
Ok pas de pb c'est facile, version du jour avec :

* calendrier vacances "élèves"

* un simple V sur le cadre des vacances avec clic=>intitulé des vacances

* "roulement" de 1 à 4 semaines, c'est même extrêmement simple :
- 4 grilles de 1 à 4 à remplir ou non (on laisse le choix)
- le code prendra en compte 1 2 3 ou 4 semaines en fonction de ce qui est rempli (exemple dans le fichier du jour 3 grilles complétées => roulement de 3 semaines)

pamonnier

XLDnaute Junior
Bonjour,

Pareil que @Etoto cours collectif ? :D

Bon petit beug d'affichage pour le pont de l'ascension par exemple car le rectangle est trop court une idée pour qu'on puisse lire ? ou marqué Férié peut être ? Tout en restant dans cet optique de ne pas surchargé l'affichage

Le 31 Aout fait parti des horaires "imposés" ce qui n'est pas pris en compte dans le tableau

Le reset des vacances c'est plus une actualisation ?
 

Etoto

XLDnaute Barbatruc
Bonjour,

Pareil que @Etoto cours collectif ? :D

Bon petit beug d'affichage pour le pont de l'ascension par exemple car le rectangle est trop court une idée pour qu'on puisse lire ? ou marqué Férié peut être ? Tout en restant dans cet optique de ne pas surchargé l'affichage

Le 31 Aout fait parti des horaires "imposés" ce qui n'est pas pris en compte dans le tableau
Tu parles des rectangles jaunes ? Tu peux cliquer dessus pour avoir le libellé entier je crois.
 

pamonnier

XLDnaute Junior
Tu parles des rectangles jaunes ? Tu peux cliquer dessus pour avoir le libellé entier je crois.
oui j'avais vu mais c'était plus l'affichage sur la feuille 😇

Pour le problème du 31 aout travaillé avec horaires imposés ça doit se trouver ici ?

VB:
          For i = 1 To 10 ' jours travaillés sur vacances
                If Theo(3)(i, 1) = .Cells(lg, "B").Value Then
                    Td(1, 1) = CDbl(CDate(.Cells(lg, "B").Value))
                    For j = 1 To 5
                        .Cells(lg, j + 3).Value = Theo(3)(i, j + 1)
                        .Cells(lg, j + 8).Value = Theo(3)(i, j + 1)
                        Td(1, j + 1) = Theo(3)(i, j + 1)
                        Td(1, j + 6) = Theo(3)(i, j + 1)
                    Next j
                    Id = Exist_Data(CDbl(CDate(Td(1, 1))))
                    If Id = 0 Then Sauve Id, Td
                End If
 

pamonnier

XLDnaute Junior
Je ne suis pas un expert, mais c'est un peu compliqué de changer cela, à part baisser la taille de police ou d'agrandir la hauteur des cellules. Mais il connait sons fichier mieux que moi .:)
Oui je chipote un peu ce n'est pas grave

Par contre je cherche à régler le problème du 31 Aout où se ne sont pas les bons horaires mais quand je vois le code ....o_O😅
 
Dernière édition:

p56

XLDnaute Occasionnel
Bonjour à tous, et merci pour ces retours.

Pour moi, je ne vois pas de bug. Le code fait ce pourquoi il est écrit, sans effet parasite. Voyons plutôt :

* Question de la lisibilité de l'intitulé des vacances :
- ma première proposition était d'afficher le cadre vacances sur la largeur de la grille. L'intitulé était bien visible.
- cette option n'était pas souhaitée par le demandeur, dont acte.
- pour y répondre, ma 2ème proposition est de limiter la largeur et de proposer l'affichage de l’intitulé au clic (pour contourner le fait qu'en cas de vacances courtes la lisibilité n'est pas top)
- c'est un compromis, mais je ne sais pas faire les 2 : un truc large mais pas large, visible mais pas trop visible, ... il y a un choix à faire, un autre compromis?

* Question des jours travaillés pendant vacances, et cas particulier du 31/08/22 :
- là il va falloir se mettre d'accord avec votre ministère.
- En effet, les dates officielles des vacances d'été pour les enseignants sont indiquées du 06/07/22 au 30/08/22 => le 31/08/22 est donc bien un jour travaillé selon eux.
- La grille des 10jours travaillés est peut être à revoir ...
=> donc cette question est à voir avec votre syndicat d'enseignants, le code proposé n'a rien à voir et fait son job.

P.
 

pamonnier

XLDnaute Junior
Bonjour à tous, et merci pour ces retours.

Pour moi, je ne vois pas de bug. Le code fait ce pourquoi il est écrit, sans effet parasite. Voyons plutôt :

* Question de la lisibilité de l'intitulé des vacances :
- ma première proposition était d'afficher le cadre vacances sur la largeur de la grille. L'intitulé était bien visible.
- cette option n'était pas souhaitée par le demandeur, dont acte.
- pour y répondre, ma 2ème proposition est de limiter la largeur et de proposer l'affichage de l’intitulé au clic (pour contourner le fait qu'en cas de vacances courtes la lisibilité n'est pas top)
- c'est un compromis, mais je ne sais pas faire les 2 : un truc large mais pas large, visible mais pas trop visible, ... il y a un choix à faire, un autre compromis?

* Question des jours travaillés pendant vacances, et cas particulier du 31/08/22 :
- là il va falloir se mettre d'accord avec votre ministère.
- En effet, les dates officielles des vacances d'été pour les enseignants sont indiquées du 06/07/22 au 30/08/22 => le 31/08/22 est donc bien un jour travaillé selon eux.
- La grille des 10jours travaillés est peut être à revoir ...
=> donc cette question est à voir avec votre syndicat d'enseignants, le code proposé n'a rien à voir et fait son job.

P.
Alors justement c’est pour une association où nous n’avons pas forcément le même fonctionnement. Nous accompagnons des enfants en situation de handicap.
Donc nous avons sensiblement un fonctionnement éducation nationale. Mais le 31 est un jour non scolaire mais travaillé pour nous avec des horaires spécifiques. Ce n’est pas possible de mettre ses 10 jours en priorité ?

Peut être que pour éviter le souci d’affichage des noms de jour férié ou vacances il faudrait effectivement laisser uniquement la case colorée mais vide de texte et si on clic dessus ça affiche les infos comme actuellement.
 

p56

XLDnaute Occasionnel
* Lisibilité des vacances, autre compromis possible, avec cadre semi-large et transparent
- procédure Dessi_ScolR le W devient :
W = .Range("I5").Left - L - 2
- et procédure Histo, ajouter après .Line.ForeColor... :
.Fill.Transparency = 0.6

- ou supprimer le texte en supprimant la ligne .Text = Nm (de procédure Histo) mais au détriment des périodes longues (autre compromis à trouver). Alternatve : ou un truc genre if H<20 then .text="" else .Text = Nm
(en réglant la valeur (ici 20) selon souhait)

* Jours travaillés pendant vacances: il est possible de lire les dates de vacances Elèves et non Enseignants :
- procédure Recup_ScolR la ligne Adr = Adr & "&exclude.population=Élèves"
est à remplacer par Adr = Adr & "&exclude.population=Enseignants"
Ici aussi c'est un autre compromis.
 

pamonnier

XLDnaute Junior
*Exclude Enseignants parfait

*Le choix est difficile mais je crois que je vais prendre la suppression du texte pour les vacs et il suffit de cliquer dessus voir l'info bulle

Parfois des collègues travaillent sur 3 ou 4 semaines d'horaires différents. Sur la feuille que j'ai fait pour 1 collègue à la place de gérer les semaines paires et impaires je lui faisais marquer 1/2/3 ou 4 pour générer le planning théorique correspondant. Est-ce difficile de l'appliquer ? si oui pas la peine de se casser la tête en tout cas pas pour le moment

Merci pour tout
 
Dernière édition:

p56

XLDnaute Occasionnel
Ok pas de pb c'est facile, version du jour avec :

* calendrier vacances "élèves"

* un simple V sur le cadre des vacances avec clic=>intitulé des vacances

* "roulement" de 1 à 4 semaines, c'est même extrêmement simple :
- 4 grilles de 1 à 4 à remplir ou non (on laisse le choix)
- le code prendra en compte 1 2 3 ou 4 semaines en fonction de ce qui est rempli (exemple dans le fichier du jour 3 grilles complétées => roulement de 3 semaines)
 

Pièces jointes

  • Fiche_Horaires_11nov.zip
    91.8 KB · Affichages: 20

pamonnier

XLDnaute Junior
Super merci Excellent pas mal l'idée ce qui permet aux personnes d'avoir soit 1/2/3 ou 4 semaines de roulements

Sur les API éducation nationale je vois que le pont de l'Ascension prends fin le 22 mai 2023 00:00 comment avez vous fait pour que ça ne prenne pas le lundi 22 mai 2023 dans ce pont ?

Source ou j'avais mon souci

 
Dernière édition:

pamonnier

XLDnaute Junior
Ah car moi sur ma Feuille avec l’API éducation nationale c’est marqué 22 mai 2023 00:00 Ça me faisait donc une erreur avec un pont allant jusqu’au lundi inclus.

Je vais vérifier encore mais de sûr sur Excel mon import base de donnée depuis un site c’est bien marqué 22/05/2023

Pourtant nous avions la même base de donnée et le end date est marqué le 22/05/23 mais votre feuille le gère bien ..... je comprends pas pourquoi moi j'avais un souci
Je vois que toutes les dates de fin sont à 00:00 soit le jours de reprise

Votre feuille gère les heures également ?

 
Dernière édition:

p56

XLDnaute Occasionnel
Ok je vois, c'est un classique.

* Ma méthode interroge le même site mais via une lecture json => cf image
Capture d’écran 2022-11-11 202015.jpg


* Si on télécharge la même info, sur le même site, mais au format excel on obtient :
Capture d’écran 2022-11-11 202727.jpg


La différence est de taille l'une étant en temps UTC : 22:00+00:00, l'autre en temps local soit, pour aujourd'hui, correspondant à l'heure d'hiver soit 00:00+02:00 (comme indiqué à la fin) ce qui donne une date systématiquement au lendemain
Ainsi dans cet exemple les 2 dates sont repoussées au lendemain le 17/05 =>18/05 et le 21/05 => 22/05

Conclusion : la lecture via json est toujours préférable. CQFD.
 

Discussions similaires

Réponses
22
Affichages
741

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur