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)

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

Etoto

XLDnaute Barbatruc
Hello,

@ Bernard_XLD a créé une superbe fonction qui utilise un tableau de jours fériés, à voir si cela t'aide.

 

pamonnier

XLDnaute Junior
Pour les jours fériés j'ai fait un tableau avec les formule en fonction de la date ce qui devrait jouer. Par contre je bloque pour la recherche des vacances
J4ai une date dans mon planning et je dois vérifier qu'elle ne se situe pas dans les plages de vacances dans la feuilles vacances zone A
J'avais imaginer l'intégrer dans ma rechercheX avec une formule du genre =SI(ET(F2>=B4;F2<=C4);"Vacances"; "NON")
mais il faut que je cherche dans tout un tableau pas seulement une cellule comme l'exemple que je viens de mettre.
 

Etoto

XLDnaute Barbatruc
Essaie ça :
VB:
=SI(RECHERCHEX(F2;Vacances_scolaires_Zone_A[start_date];Vacances_scolaires_Zone_A[end_date];0;-1)=RECHERCHEX(F2;Vacances_scolaires_Zone_A[end_date];Vacances_scolaires_Zone_A[end_date];0;1);"Oui";"Non")

Il fallait faire deux RECHERCHEX, celui qui cherche la date de départ et celui qui cherche la date de fin, mais vu que il faut dire de chercher les dates qui son entre date de départ et date de fin, on fait deux RECHERCHEX, celui qui cherche les dates inférieurs à la date de fin et celui qui cherche les date supérieurs au date du début, ensuite, si le SI remarque qu'ils renvoient les deux le même résultat, cela signifie que c'est une date dans les vacances.
 

pamonnier

XLDnaute Junior
Super c'est exactement ça !

Bon maintenant il faut que j'arrive à intégrer cette formule dans ma formule générale qui cherche toutes les info dont mon ancienne feuille "vacances"

Code:
=SI(RECHERCHEX(F2;Vacances_scolaires_Zone_A[start_date];Vacances_scolaires_Zone_A[end_date];0;-1)=RECHERCHEX(F2;Vacances_scolaires_Zone_A[end_date];Vacances_scolaires_Zone_A[end_date];0;1);"Oui";"Non")

dans

VB:
=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));"")));"")
 

Etoto

XLDnaute Barbatruc
Super c'est exactement ça !

Bon maintenant il faut que j'arrive à intégrer cette formule dans ma formule générale qui cherche toutes les info dont mon ancienne feuille "vacances"

Code:
=SI(RECHERCHEX(F2;Vacances_scolaires_Zone_A[start_date];Vacances_scolaires_Zone_A[end_date];0;-1)=RECHERCHEX(F2;Vacances_scolaires_Zone_A[end_date];Vacances_scolaires_Zone_A[end_date];0;1);"Oui";"Non")

dans

VB:
=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));"")));"")
Sacrée formule ton SI là , je te conseillerais presque de faire un tableau avec chaque cellule pour chaque SI et une dernière cellule qui synthétise toutes les formules (tous les SI) pour le résultat final. 🤣
 
Dernière édition:

pamonnier

XLDnaute Junior
Bon j'ai réussi mais je dois reprendre l'ordre des choses pour que tout apparaissent en fonction de :

-En premier Les jours fériés
-En deuxième le tableau dans la page paramètre A18:A27 qui définit des jours et des heures travaillés pendant les vacances scolaires.
-Et en dernier les vacances scolaire

VB:
=SI(RECHERCHEX($A20;'Vacances Zone A'!$B:$B;'Vacances Zone A'!$C:$C;0;-1)=RECHERCHEX($A20;'Vacances Zone A'!$C:$C;'Vacances Zone A'!$C:$C;0;1);"VACANCES";SIERREUR(SI(EST.IMPAIR(NO.SEMAINE.ISO($A20));(SIERREUR(RECHERCHEX($A20;Paramètres!$A$18:$A$98;Paramètres!B$18:B$98;(RECHERCHEX($A20;'Jours fériés'!$B$2:$B$30;'Jours fériés'!$A$2:$A$30;SI(RECHERCHEX($B20;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1)=0;"";RECHERCHEX($B20;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1));0;1)));0));(SI(EST.PAIR(NO.SEMAINE.ISO($A20));(SIERREUR(RECHERCHEX($A20;'Jours fériés'!$B$2:$B$30;'Jours fériés'!$A$2:$A$30;SI(RECHERCHEX($B20;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1)=0;"";RECHERCHEX($B20;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1));0;1);0));"")));""))
 

Etoto

XLDnaute Barbatruc
Bon j'ai réussi mais je dois reprendre l'ordre des choses pour que tout apparaissent en fonction de :

-En premier Les jours fériés
-En deuxième le tableau dans la page paramètre A18:A27 qui définit des jours et des heures travaillés pendant les vacances scolaires.
-Et en dernier les vacances scolaire

VB:
=SI(RECHERCHEX($A20;'Vacances Zone A'!$B:$B;'Vacances Zone A'!$C:$C;0;-1)=RECHERCHEX($A20;'Vacances Zone A'!$C:$C;'Vacances Zone A'!$C:$C;0;1);"VACANCES";SIERREUR(SI(EST.IMPAIR(NO.SEMAINE.ISO($A20));(SIERREUR(RECHERCHEX($A20;Paramètres!$A$18:$A$98;Paramètres!B$18:B$98;(RECHERCHEX($A20;'Jours fériés'!$B$2:$B$30;'Jours fériés'!$A$2:$A$30;SI(RECHERCHEX($B20;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1)=0;"";RECHERCHEX($B20;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1));0;1)));0));(SI(EST.PAIR(NO.SEMAINE.ISO($A20));(SIERREUR(RECHERCHEX($A20;'Jours fériés'!$B$2:$B$30;'Jours fériés'!$A$2:$A$30;SI(RECHERCHEX($B20;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1)=0;"";RECHERCHEX($B20;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1));0;1);0));"")));""))
Pas sûr d'avoir compris, je dois faire quelque chose ou c'est fini ? 🤣
 

pamonnier

XLDnaute Junior
Non je posais mes réflexions et j'(ai trouvé en même temps

Le code terminé est comme ceci et ça fonctionne à première vu

VB:
=RECHERCHEX($A34;'Jours fériés'!$B$2:$B$30;'Jours fériés'!$A$2:$A$30;RECHERCHEX($A34;Paramètres!$A$18:$A$98;Paramètres!B$18:B$98;SI(RECHERCHEX($A34;'Vacances Zone A'!$B:$B;'Vacances Zone A'!$C:$C;0;-1)=RECHERCHEX($A34;'Vacances Zone A'!$C:$C;'Vacances Zone A'!$C:$C;0;1);"Vacances";SIERREUR(SI(EST.IMPAIR(NO.SEMAINE.ISO($A34));SI(RECHERCHEX($B34;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1)=0;"";RECHERCHEX($B34;Paramètres!$A$2:$A$6;Paramètres!B$2:B$6;0;0;1));SI(EST.PAIR(NO.SEMAINE.ISO($A34));(SI(RECHERCHEX($B34;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0;0;1)=0;"";RECHERCHEX($B34;Paramètres!$I$2:$I$6;Paramètres!J$2:J$6;0)));""));""))))

Par contre possible de trouver un bout de mot dans un champs ? j'avais mis J.F. pour les jours fériés mais maintenant ils sont du Type "J.F. Noël" Est il possible dans la formule si dessous de mettre une recherche "contenant dans la cellule J.F." ?

Merci

VB:
=SI(($D20=TEXTE("Vacances");"Vacances";SI($D20=TEXTE("J.F.";"J.F.";SI(OU($B20="dimanche";$B20="samedi");"";SI(OU(D20=0;E20=0;F20=0;G20=0);"";SI(ET(J20=0;I20=0;L20=0;K20=0);"";SIERREUR(SIERREUR(SIERREUR((J20-I20)+(L20-K20);J20-I20);(L20-K20));""))))))
 
Dernière édition:

p56

XLDnaute Occasionnel
@p56 si jamais ....
Bonjour à tous,
Appelé à comparaitre, alors voici une proposition :
* le fichier ne contient que 3 onglets :
1/ parametres
2/ le planning mensuel
3/ les données enregistrées
Capture d’écran 2022-11-09 140528.jpg

* dans les parametres, on récupère les dates des vacances en cliquant sur le bouton en S
* dans le planning, on navigue d'un mois à l'autre, le prévisionnel s'affiche
* on peut modifier le réalisé => ça s'enregistre tout seul et les modif se ré-affichent quand on revient sur le mois concerné

Encore incomplet, mais si ça convient je peux continuer ...
P.
 
Dernière édition:

pamonnier

XLDnaute Junior
Bonjour à tous,
Appelé à comparaitre, alors voici une proposition :
* le fichier ne contient que 3 onglets :
1/ parametres
2/ le planning mensuel
3/ les données enregistrées
Regarde la pièce jointe 1154826
* dans les parametres, on récupère les dates des vacances en cliquant sur le bouton en S
* dans le planning, on navigue d'un mois à l'autre, le prévisionnel s'affiche
* on peut modifier le réalisé => ça s'enregistre tout seul et les modif se ré-affichent quand on revient sur le mois concerné

Encore incomplet, mais si ça convient je peux continuer ...
P.
impressionnant il faut que je me penche dessus car je vais avoir besoin que ça colle un peu à ma feuille proposée avec une possibilité d'exporter le mois au format pdf
il faut aussi ajouter des jours en plus du planning théorique qui sont travaillés pendant les vacances
 

pamonnier

XLDnaute Junior
Exemple de formule qui cherche SEULEMENT la première occurrence (sinon fonction FILTRE) :
VB:
=EQUIV(1;SIERREUR(CHERCHE("JF";ta plage);2))
Merci je regarde pour le mettre dans ma formule

J'ai des erreurs en faisant comme ça:

VB:
=SI($D20=TEXTE("Vacances";);"Vacances";(EQUIV(1;sierreur(CHERCHE("J.F.";$D20);2));SI(OU($B20="dimanche";$B20="samedi");"";SI(OU(D20=0;E20=0;F20=0;G20=0);"";SI(ET(J20=0;I20=0;L20=0;K20=0);"";SIERREUR(SIERREUR(SIERREUR((J20-I20)+(L20-K20);J20-I20);(L20-K20));""))))))
 
Dernière édition:

Discussions similaires

Réponses
22
Affichages
742