Va voir là : http://disciplus.simplex.free.fr/classeursxl/av-mefc.zip
Rubrique "Date - Heures" "Les jours fériés et WE dans un calendrier"
AV
Frédéric Sigonneau
Bonsoir,
Une macro qui programme une mise en forme conditionnelle, issue d'un échange il y a environ un an. Telle que, elle met en forme à une plage sélectionnée. A adapter, donc, à ton besoin précis :
'==================== Sub MFC_WEFerie() 'Normalement (?), il n'est pas possible d'entrer dans la boite de dialogue 'de mise en forme conditionnelle une formule de plus de 254 caractères. 'Sauf par une macro !... 'Cette possibilité permet de rentrer ici en première condition une formule 'de plus de 400 caractères qui teste si la cellule mise en forme contient 'ou non un jour férié. 'En deuxième condition, mise en évidence des samedis et dimanches. 'Alain Vallon, mpfe, a largement contribué à ce travail. Adr$ = Selection.Range("A1").Address(0, 0) Paques$ = _ "FRANC(DATE(ANNEE(" & Adr & ");4;JOUR(MINUTE(ANNEE(" & _ Adr & ")/38)/2+55))/7;)*7-6" '(formule de Norbert Hetterich : renvoie la date du dimanche 'de Pâques - valide jusqu'en 2079) With Selection .FormatConditions.Delete 'recherche des 11 jours fériés français .FormatConditions.Add Type:=xlExpression, Formula1:= _ "=OU(" & _ Adr & "ÚTE(ANNEE(" & Adr & ");1;1);" & _ Adr & "=" & Paques & "+1;" & _ Adr & "ÚTE(ANNEE(" & Adr & ");5;1);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");5;8);" & _ Adr & "=" & Paques & "+39;" & _ Adr & "=" & Paques & "+50;" & _ Adr & "ÚTE(ANNEE(" & Adr & ");7;14);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");8;15);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");11;1);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");11;11);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");12;25)" & _ ")" .FormatConditions(1).Interior.ColorIndex = 34 .FormatConditions.Add Type:=xlExpression, Formula1:= _ "=JOURSEM(" & Adr & ";2)>5" .FormatConditions(2).Interior.ColorIndex = 27 End With End Sub 'fs '==================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
bonjour à tous
Dans un tableux, à partir de A4 à Axxxxxx, des dates sont mise en forme conditionnelle pour faire resortir les samedis et dimanches.
j'aimerais également faire resortir les jours fériés.
Existe t'il un moyen ? mise en forme conditionnelle ou macro ?
salutations et bonne journée
David
Bonsoir,
Une macro qui programme une mise en forme conditionnelle, issue d'un échange il
y a environ un an. Telle que, elle met en forme à une plage sélectionnée. A
adapter, donc, à ton besoin précis :
'==================== Sub MFC_WEFerie()
'Normalement (?), il n'est pas possible d'entrer dans la boite de dialogue
'de mise en forme conditionnelle une formule de plus de 254 caractères.
'Sauf par une macro !...
'Cette possibilité permet de rentrer ici en première condition une formule
'de plus de 400 caractères qui teste si la cellule mise en forme contient
'ou non un jour férié.
'En deuxième condition, mise en évidence des samedis et dimanches.
'Alain Vallon, mpfe, a largement contribué à ce travail.
Adr$ = Selection.Range("A1").Address(0, 0)
Paques$ = _
"FRANC(DATE(ANNEE(" & Adr & ");4;JOUR(MINUTE(ANNEE(" & _
Adr & ")/38)/2+55))/7;)*7-6"
'(formule de Norbert Hetterich : renvoie la date du dimanche
'de Pâques - valide jusqu'en 2079)
With Selection
.FormatConditions.Delete
'recherche des 11 jours fériés français
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=OU(" & _
Adr & "ÚTE(ANNEE(" & Adr & ");1;1);" & _
Adr & "=" & Paques & "+1;" & _
Adr & "ÚTE(ANNEE(" & Adr & ");5;1);" & _
Adr & "ÚTE(ANNEE(" & Adr & ");5;8);" & _
Adr & "=" & Paques & "+39;" & _
Adr & "=" & Paques & "+50;" & _
Adr & "ÚTE(ANNEE(" & Adr & ");7;14);" & _
Adr & "ÚTE(ANNEE(" & Adr & ");8;15);" & _
Adr & "ÚTE(ANNEE(" & Adr & ");11;1);" & _
Adr & "ÚTE(ANNEE(" & Adr & ");11;11);" & _
Adr & "ÚTE(ANNEE(" & Adr & ");12;25)" & _
")"
.FormatConditions(1).Interior.ColorIndex = 34
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=JOURSEM(" & Adr & ";2)>5"
.FormatConditions(2).Interior.ColorIndex = 27
End With
End Sub 'fs
'====================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
bonjour à tous
Dans un tableux, à partir de A4 à Axxxxxx, des dates sont mise en forme
conditionnelle pour faire
resortir les samedis et dimanches.
j'aimerais également faire resortir les jours fériés.
Existe t'il un moyen ? mise en forme conditionnelle ou macro ?
Une macro qui programme une mise en forme conditionnelle, issue d'un échange il y a environ un an. Telle que, elle met en forme à une plage sélectionnée. A adapter, donc, à ton besoin précis :
'==================== Sub MFC_WEFerie() 'Normalement (?), il n'est pas possible d'entrer dans la boite de dialogue 'de mise en forme conditionnelle une formule de plus de 254 caractères. 'Sauf par une macro !... 'Cette possibilité permet de rentrer ici en première condition une formule 'de plus de 400 caractères qui teste si la cellule mise en forme contient 'ou non un jour férié. 'En deuxième condition, mise en évidence des samedis et dimanches. 'Alain Vallon, mpfe, a largement contribué à ce travail. Adr$ = Selection.Range("A1").Address(0, 0) Paques$ = _ "FRANC(DATE(ANNEE(" & Adr & ");4;JOUR(MINUTE(ANNEE(" & _ Adr & ")/38)/2+55))/7;)*7-6" '(formule de Norbert Hetterich : renvoie la date du dimanche 'de Pâques - valide jusqu'en 2079) With Selection .FormatConditions.Delete 'recherche des 11 jours fériés français .FormatConditions.Add Type:=xlExpression, Formula1:= _ "=OU(" & _ Adr & "ÚTE(ANNEE(" & Adr & ");1;1);" & _ Adr & "=" & Paques & "+1;" & _ Adr & "ÚTE(ANNEE(" & Adr & ");5;1);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");5;8);" & _ Adr & "=" & Paques & "+39;" & _ Adr & "=" & Paques & "+50;" & _ Adr & "ÚTE(ANNEE(" & Adr & ");7;14);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");8;15);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");11;1);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");11;11);" & _ Adr & "ÚTE(ANNEE(" & Adr & ");12;25)" & _ ")" .FormatConditions(1).Interior.ColorIndex = 34 .FormatConditions.Add Type:=xlExpression, Formula1:= _ "=JOURSEM(" & Adr & ";2)>5" .FormatConditions(2).Interior.ColorIndex = 27 End With End Sub 'fs '==================== FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
bonjour à tous
Dans un tableux, à partir de A4 à Axxxxxx, des dates sont mise en forme conditionnelle pour faire resortir les samedis et dimanches.
j'aimerais également faire resortir les jours fériés.
Existe t'il un moyen ? mise en forme conditionnelle ou macro ?