Bonjour
Il est souvent difficile de bien s'exprimer sur ce que l'on veut.
Je vous explique mon projet.
J'ai un onglet "Calendrier". Évidement il contient l'ensemble des jours de l'années
Ensuite, j'ai un onglet par jour de l'années.
La référence de l'un à l'autre se fait relativement bien.
J'aimerais que la cellule correspondant à la date change de couleur si la valeur de la cellule B28 (De mes onglets correspondant à chaque jour de l'année) est = à 0 en rouge. plus grand que 0 mais plus petit que 9 en jaune. Égale ou plus grand que 9 en vert. Je ne veux pas que la cellule change de couleur si la date est plus grande que la date d'aujourd'hui.
J'ai élaboré une partie de code qui fait les relations entre mes onglets et la valeur = 0 je vous laisse mon code ici.
Sub MAJ_couleur_cellules()
Dim sh As Worksheet
Dim Onglet As Date
Dim moisacompiler As Date
Dim Plage As Range
For Each sh In ThisWorkbook.Worksheets
With sh
If Not .Name = "Calendrier" And Not .Name = "Sommaire" And Not .Name = "Protection" And Not .Name = "Listes_deroulantes" Then
y = sh.Range("G4").Value
Onglet = sh.Range("A6")
y = sh.Range("G4").Value 'Récupère l'année dans la cellule G4
x = Month(Onglet) ' Récupère le mois dans la cellule A6
D = Day(Onglet) 'Récupère le jour dans la cellule A6
'Récupération de la date
moisacompiler = y & "-" & x & "-" & D
'Comparaison valeur de la cellule B28 si égale à 0
If sh.Range("B28") = 0 Then
Set Plage = ThisWorkbook.Worksheets("Calendrier").Range("D13:H18")
Madate = moisacompiler
For Each Cell In Plage
If Cell.Value < Madate Then
Sheets("Calendrier").Unprotect "essai"
Cell.Interior.Color = RGB(255, 0, 0)
Sheets("Calendrier").Protect "essai"
End If
Next Cell
End If
End If
End With
Next
End Sub
Merci de votre aide