Bonjour à tous,
Je suis en train de créer un calendrier avec un onglet par mois, le but étant d'avoir une mise en forme automatique du calendrier en fonction des week-end, jours fériés et vacances scolaires.
Si j'ai réussi à obtenir ce que je voulais pour les week-end et jours fériés, ce n'est pas encore le cas pour les vacances scolaires.
Je pars du principe que j'ai un onglet particulier "Fériés et Vacances" dans lequel sont saisies toutes les dates des jours fériés et les plages des vacances (donc uniquement le premier jour et le dernier jour).
J'ai pu trouvé dans les différents sujets de ce forum diverses solutions mais rien qui me convienne.
La solution qui fonctionne, mais que je trouve longue, est de vérifier pour chaque date si elle se trouve dans une des plages entre le début et la fin de chaque période de vacances.
Sinon, j'ai trouvé cette formule:
=STYLE(SI(EST.IMPAIR(EQUIV(K2;$'Fériés & Vacances'.$D$20:$D$31;1));"Vancances";"Jour")
où "K2" est la date du jour de mon calendrier
où "$'Fériés & Vacances'.$D$20:$D$31" est le tableau dans lequel se trouvent les plages de vacances
où "Vacances" est le style à appliquer si la condition est remplie
où "Jour" est le style à appliquer si la condition n'est pas remplie
Deux problème avec cette formule:
1- je ne la comprend pas :-/
2- elle ne fonctionne pas correctement car s'arrête à chaque fois la veille du dernier jour des vacances...
Je vous mets en pièce jointe le classeur dans lequel j'essaye d'appliquer cet MFC, sur la ligne 1 uniquement, des onglets de chaque mois.
Merci.
Edit: après m'être relu, je m'aperçois que je n'ai pas dit à quoi je souhaitais arriver:
Avoir dans un format particulier (fond jaune) les cellules de la ligne 1 qui contiennent une date comprise pendant les vacances.
[Résolu] MFC des vacances dans un calendrier
Modérateur : Vilains modOOs
Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
-
Me_
- Membre lOOyal

- Messages : 26
- Inscription : 02 mars 2011 12:09
[Résolu] MFC des vacances dans un calendrier
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Me_ le 01 oct. 2013 11:08, modifié 2 fois.
Apache OpenOffice 4.0.0 / Windows 7
LibreOffice 3.5.4.2 / Ubuntu 12.04
LibreOffice 3.5.4.2 / Ubuntu 12.04
-
phip
- HédOOniste

- Messages : 2016
- Inscription : 09 juin 2010 18:13
Re: Mise en forme conditionnelle des vacances dans un calend
Bonjour
quelques exemples
Calendrier jours fériés France (automatique ou non)
Calendrier perpétuel avec zones scolaires
cordialement
quelques exemples
Calendrier jours fériés France (automatique ou non)
Calendrier perpétuel avec zones scolaires
cordialement
-
Me_
- Membre lOOyal

- Messages : 26
- Inscription : 02 mars 2011 12:09
Re: Mise en forme conditionnelle des vacances dans un calend
Merci pour ta réponse.phip a écrit :Bonjour
quelques exemples
Calendrier jours fériés France (automatique ou non)
Calendrier perpétuel avec zones scolaires
cordialement
Le premier lien est pour les jours fériés. Ceux-ci ne me posent pas de problèmes. Cela dit, merci pour le lien, car j'étais déjà tombé dessus mais impossible de le retrouver...
Le deuxième est celui qui m'a permis d'utiliser la formule que je donne dans mon premier post. Formule que je ne comprend pas et qui ne fonctionne pas comme je le souhaite. Et comme je ne la comprend pas, il m'est difficile de l'adapter éventuellement à mon besoin...
Apache OpenOffice 4.0.0 / Windows 7
LibreOffice 3.5.4.2 / Ubuntu 12.04
LibreOffice 3.5.4.2 / Ubuntu 12.04
-
phip
- HédOOniste

- Messages : 2016
- Inscription : 09 juin 2010 18:13
Re: Mise en forme conditionnelle des vacances dans un calend
re
utilise la date de reprise des cours en place de fin de vacances
cela est du à la fonction EST.IMPAIR qui change à la date indiquée en fin d’où un jours en moins.
cordialement
utilise la date de reprise des cours en place de fin de vacances
cela est du à la fonction EST.IMPAIR qui change à la date indiquée en fin d’où un jours en moins.
cordialement
-
gerard24
- ManitOOu

- Messages : 3160
- Inscription : 06 juil. 2008 17:08
- Localisation : dans le Périgord
Re: Mise en forme conditionnelle des vacances dans un calend
Bonjour,
Les explications de la formule :
Si la valeur est absente de la plage, elle renvoie la valeur immédiatement inférieure.
Par exemple EQUIV(24/02/2014;$'Fériés & Vacances'.$D$20:$D$31;1) renvoie 3 (qui correspond au 22/02/2014).
EST.IMPAIR permet de tester que la valeur renvoyée par EQUIV est une date de début de vacances.
Comme tu l'as remarqué cela pose un problème pour le dernier jour qui n'est pas considéré comme une date de vacances.
Il suffit de rajouter 1 aux date de fin pour résoudre le problème.
Par exemple en D20 feuille vacances, on ajoute un test à la fin de ta formule :
A+
+1phip a écrit :utilise la date de reprise des cours en place de fin de vacances
Les explications de la formule :
La fonction EQUIV avec le troisième argument égal à 1 renvoie la position de la valeur cherchée dans une plage triée en ordre croissant.=EST.IMPAIR(EQUIV(I2;$'Fériés & Vacances'.$D$20:$D$31;1))
Si la valeur est absente de la plage, elle renvoie la valeur immédiatement inférieure.
Par exemple EQUIV(24/02/2014;$'Fériés & Vacances'.$D$20:$D$31;1) renvoie 3 (qui correspond au 22/02/2014).
EST.IMPAIR permet de tester que la valeur renvoyée par EQUIV est une date de début de vacances.
Comme tu l'as remarqué cela pose un problème pour le dernier jour qui n'est pas considéré comme une date de vacances.
Il suffit de rajouter 1 aux date de fin pour résoudre le problème.
Par exemple en D20 feuille vacances, on ajoute un test à la fin de ta formule :
Code : Tout sélectionner
=DATEVAL(CONCATENER(GAUCHE(C20;5);"/";A$2))+(B20="Fin")-
phip
- HédOOniste

- Messages : 2016
- Inscription : 09 juin 2010 18:13
Re: Mise en forme conditionnelle des vacances dans un calend
Re
+1 pour gerard24
erreur sur la fonction
c'est EQUIV et non EST.IMPAIR.
cordialement
+1 pour gerard24
erreur sur la fonction
c'est EQUIV et non EST.IMPAIR.
cordialement
-
Me_
- Membre lOOyal

- Messages : 26
- Inscription : 02 mars 2011 12:09
Re: Mise en forme conditionnelle des vacances dans un calend
Merci pour vos réponses.
En effet, en décalant la date de fin de vacances à celle de reprise des cours, on contourne le problème. Je vais faire comme cela.
En revanche concernant l'ajout à la fin de la formule de +(B20="Fin") , quelqu'un peut-il m'expliquer son fonctionnement? Je vois en gros pourquoi le +B20 mais comment fonctionne la partie ="Fin"?
Merci.
En effet, en décalant la date de fin de vacances à celle de reprise des cours, on contourne le problème. Je vais faire comme cela.
En revanche concernant l'ajout à la fin de la formule de +(B20="Fin") , quelqu'un peut-il m'expliquer son fonctionnement? Je vois en gros pourquoi le +B20 mais comment fonctionne la partie ="Fin"?
Merci.
Apache OpenOffice 4.0.0 / Windows 7
LibreOffice 3.5.4.2 / Ubuntu 12.04
LibreOffice 3.5.4.2 / Ubuntu 12.04
-
Jeff
- Grand Maître de l'OOffice

- Messages : 10007
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: Mise en forme conditionnelle des vacances dans un calend
Bonjour,
Si cette condition n'est pas vérifiée, cette partie renvoie FAUX, que Calc interprète comme 0.
Si cette condition est vérifiée, cette partie renvoie VRAI, que Calc interprète comme 1, le fameux 1 que Gérard te demande de rajouter au date de fin.
A +
Saisie =B20="Fin" en E20, et tu vas comprendre de suite le fonctionnementMe_ a écrit :concernant l'ajout à la fin de la formule de +(B20="Fin") , quelqu'un peut-il m'expliquer son fonctionnement?
Si cette condition n'est pas vérifiée, cette partie renvoie FAUX, que Calc interprète comme 0.
Si cette condition est vérifiée, cette partie renvoie VRAI, que Calc interprète comme 1, le fameux 1 que Gérard te demande de rajouter au date de fin.
A +
À lire avant tout !
Pour télécharger Apache OpenOffice
AOO 4.1.16 / Debian 13 "Trixie" / Xfce
AOO 4.1.15 / Debian 11 "Bullseye" / Cinnamon
Pour télécharger Apache OpenOffice
AOO 4.1.16 / Debian 13 "Trixie" / Xfce
AOO 4.1.15 / Debian 11 "Bullseye" / Cinnamon
-
Me_
- Membre lOOyal

- Messages : 26
- Inscription : 02 mars 2011 12:09
Re: Mise en forme conditionnelle des vacances dans un calend
Ok, je viens de comprendre! C'est tout simple en fait...Jeff a écrit :Bonjour,
Saisie =B20="Fin" en E20, et tu vas comprendre de suite le fonctionnementMe_ a écrit :concernant l'ajout à la fin de la formule de +(B20="Fin") , quelqu'un peut-il m'expliquer son fonctionnement?![]()
Si cette condition n'est pas vérifiée, cette partie renvoie FAUX, que Calc interprète comme 0.
Si cette condition est vérifiée, cette partie renvoie VRAI, que Calc interprète comme 1, le fameux 1 que Gérard te demande de rajouter au date de fin.
A +
Merci à vous!
Apache OpenOffice 4.0.0 / Windows 7
LibreOffice 3.5.4.2 / Ubuntu 12.04
LibreOffice 3.5.4.2 / Ubuntu 12.04