Comment faire une recherche sur une date calculée ?

jeremyserre

XLDnaute Nouveau
Bonjour,

Je suis totalement débutant en VBA.
J'essaie de faire une macro me permettant d’élaborer un planning annuel qui affiche automatiquement les jours fériés.
Et je bloque sur les jours fériés à date variable (vendre saint, pâques, ...).

Je voudrais rechercher la date de pâque, par exemple, et faire apparaitre les cellules en bleu. Mais je coince complétement sur la recherche de date.

Pourriez vous m'aider ?
Merci beaucoup par avance !

J'essaie de joindre le fichier, et je copie le code en dessous, au cas où

Sub JoursFeries()

'Déclariation des variables
Dim annee As Integer
annee = Range("B1")

Application.EnableEvents = False
'Variables liées à Paques
Dim Paques As Date
Dim VendrediSaint As Date
Dim LundiPaques As Date
Dim Ascension As Date
Dim Pentecote As Date
Dim LundiPentecote As Date
Dim Assomption As Date
'Variables liées aux autres jours férié
Dim JourDeLAn As Date
Dim FeteTravail As Date
Dim Armis45 As Date
Dim FeteNat As Date
Dim Assomp As Date
Dim Touss As Date
Dim Armis18 As Date
Dim Noel As Date
Dim StEt As Date


'Calcul de la date du dimanche de paques
A = annee Mod 19
B = annee Mod 4
C = annee Mod 7
D = ((A * 19) + 24) Mod 30
'clauses aux limites pour D
'selon http://www.chez.com/histoiredechiffres/calendrier/paques.htm
If D = 29 Then D = 28
If D = 28 And A > 10 Then D = 27
'Fin clauses aux limites
E = ((2 * B) + (4 * C) + (6 * D) + 5) Mod 7
If D + E >= 10 Then Paques = D + E - 9 & "/04/" & annee Else Paques = 22 + D + E & "/03/" & annee
'Fin de calcul de la date du dimanche de paques


'Détermniation des jours fériés découlants du Dimanche de Paques
VendrediSaint = Paques - 2
LundiPaques = Paques + 1
Ascension = Paques + 39
Pentecote = Paques + 49
LundiPentecote = Pentecote + 1
'Détermniation des autres jours fériés
JourDeLAn = DateSerial(annee, 1, 1)
FeteTravail = DateSerial(annee, 5, 1)
Armis45 = DateSerial(annee, 5, 8)
FeteNat = DateSerial(annee, 7, 14)
Assomp = DateSerial(annee, 8, 15)
Touss = DateSerial(annee, 11, 1)
Armis18 = DateSerial(annee, 11, 11)
Noel = DateSerial(annee, 12, 25)
StEt = DateSerial(annee, 12, 26)

'Affichage des dates des jours fériés découlants du Dimanche de Paques
' Range("D5") = Paques
' Range("D4") = VendrediSaint
' Range("D6") = LundiPaques
' Range("D9") = Ascension
' Range("D10") = Pentecote
' Range("D11") = LundiPentecote
'Affichage des autres jours fériés
' Range("D3") = JourDeLAn
' Range("D7") = FeteTravail
' Range("D8") = Armis45
' Range("D12") = FeteNat
' Range("D13") = Assomp
' Range("D14") = Touss
' Range("D15") = Armis18
' Range("D16") = Noel
' Range("D17") = StEt

' Fin de définition des jours fériés

'Changement de couleur de fond des cellules à jour férié fixe
If Range("B3") = JourDeLAn Then
Range("B3:I3").Interior.ColorIndex = 8
End If

If Range("AH3") = FeteTravail Then
Range("Ah3:AO3").Interior.ColorIndex = 8
End If

If Range("AH10") = Armis45 Then
Range("AH10:AO10").Interior.ColorIndex = 8
End If

If Range("B51") = FeteNat Then
Range("B51:I51").Interior.ColorIndex = 8
End If

If Range("K52") = Assomp Then
Range("K52:Q52").Interior.ColorIndex = 8
End If

If Range("AH38") = Touss Then
Range("AH38:AO38").Interior.ColorIndex = 8
End If

If Range("AH48") = Armis18 Then
Range("AH48:AO48").Interior.ColorIndex = 8
End If

If Range("AP62") = Noel Then
Range("Ap62:Aw62").Interior.ColorIndex = 8
End If

If Range("AH10") = StEt Then
Range("AH10:AO10").Interior.ColorIndex = 8
End If

'Changement de couleur de fond des cellules à jour férié mobile
With Range("Z3:Z33")
Set R = .Find(VendrediSaint, LookIn:=xlValues)
If Not (R Is Nothing) Then
FirstFound = R.Adress
Do
R.Offset(0, 1).Value = "trouver"
Set R = .FindNext(R)
Loop While R.Address <> FirstFound
Else
MsgBox ("pas trouvé")
End If
End With






'Couleur des samedi et dimanche





End Sub
 

Pièces jointes

  • nouveau calendar1.xls
    75 KB · Affichages: 37

Discussions similaires

Réponses
1
Affichages
233

Statistiques des forums

Discussions
312 092
Messages
2 085 222
Membres
102 826
dernier inscrit
ag amestan