Calendrier mise en forme conditionnelle
Bonjour
Plusieurs demandes:
1. J'aimerai griser les cases correspondant aux jours fériés qui ne tombent pas toujours le même jour ( exemple lundi de Pâques, pentecôte...) de manière automatique car j'ai une case (ref de la case en question "CalendrierAnnee") sur une autre page qui correspond à l'année et dès que je la modifie mes jours changent automatiquement. Et j'aimerai que les jours fériés se grisent automatiquement.
2. J'ai mis une valeur conditionnelle sur ma dernière ligne du tableau seulement pour les samedi et dimanche ca se fait bien c'est à dire que la case reste grise et non rouge par contre pour les jours fériés (1er mai par exemple) ca reste en rouge, chose que je voudrais modifier pour que la case reste en gris.
Voici en PJ, l'exemple pour le mois de mai
Auriez vous une solution
Merci
Bonsoir,
personnellement, chauvin comme je suis, je vous conseillerais SPASME !
Une des applications disponible sur ma page de téléchargement :
soit dans ma signature, soit sous mon avatar "Mes applications"
C'est un planning qui autorise jusqu'à 13 "position/activité" plus celle qui permet d'effacer, sur un calendrier annuel de treize mois (je crois...). Une feuille permet de faire un récap quantitatif des différentes activités en fonction des différents personnel.
Il est relativement simple
Sinon en plus compliquer il y a APACHES !
@ bientôt
LouReeD
Salut Nanou, LouReeD,
voici la première demande : la mise en gris des jours fériés mobiles.
La macro, à coller dans le module de la feuille concernée, réagit à un changement en [B1] ou [AH1].
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim tMois(), tCongés()
tMois = Array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
'
If Not Intersect(Target, Union(Range("B1"), Range("AH1"))) Is Nothing Then
For x = 1 To 12
If [B1] = tMois(x) Then iMois = x
Exit For
Next
iY = [AH1] 'calcule Pâques,Ascension, Pentecôte de l'année
Nb = (iY Mod 19) + 1
Epacte = (11 * Nb - (3 + Int(2 + Int(iY / 100)) * 3 / 7)) Mod 30
For k = 14 To 18 Step 2
PLune = DateSerial(iY, 4, 19) - ((Epacte + 6) Mod 30) - IIf(Epacte = 24 Or Epacte = 25, 1, 0)
iIdx = IIf(k = 14, 9, IIf(k = 16, 47, 58))
PLune = PLune - Weekday(PLune) + iIdx
ReDim Preserve tCongés(k + 1)
tCongés(k) = Day(PLune)
tCongés(k + 1) = Month(PLune)
Next
'
For x = 3 To Choose(iMois, 31, IIf([AH1] Mod 4 = 0, 29, 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
For w = 0 To 18 Step 2
If x - 2 = tCongés(w) And iMois = tCongés(w + 1) Then
Range(Chr(64 + x) & "2:" & Chr(64 + x) & 38).Interior.Color = RGB(191, 191, 191)
Exit For
End If
Next
Next
End If
'
End SubA+