Changement de couleur d'une cellule selon condition

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

Salut,

Où est ton fichier ou du moins un fichier modèle avec les feuilles correspondant à quelques jours de l'année ?

A te relire.

Hello

Voici mon fichier.

J'ai retiré quelques feuilles question que ce ne soit pas trop lourd.

J'ai placé le code dans ThisworkBook.

Pour l'instant, mon code vise seulement les cellules du mois de Janvier et ne couvre pas les fins de semaines.

Il ne répond pas a mes demandes pour l'instant.

Merci de votre aide

8calendrier.zip (214.58 Ko)

Salut,

J'ai cliqué sur le 5 janvier et la feuille correspondante s'est ouverte. Voici ce que je vois :

image

Si la date du jour est inscrite dans la cellule A6 de chaque feuille, ça ne va pas chez moi, ta formule renvoie #N/A (marqué en jaune).

Est-ce que chez toi c'est la date du jour qui s'affiche à cet endroit ? Ou sinon dis-moi où doit s'afficher la date du jour.

A te relire.

IL s'agit du nom de l'onglet. Le code copie le nom de l'Onglet!

Chez moi tout fonctionne à merveille.

Merci

Ou sinon dis-moi où doit s'afficher la date du jour.

La date doit s'afficher dans la cellule A6

Bonjour ? Merci ?

Salut,

A la fin de ta macro ''Worksheet_BeforeDoubleClick'' sur la feuille ''Calendrier'', j'ai rajouté le passage ci-dessous :

' Rajout Yvouille
With ActiveSheet
    .Range("A6").Interior.Pattern = xlNone ' Remise à zéro par sécurité
    If D <= Date And .Range("B28") = 0 Then
        .Range("A6").Interior.ColorIndex = 3
    ElseIf D <= Date And .Range("B28") < 9 Then
        .Range("A6").Interior.ColorIndex = 6
    ElseIf D <= Date Then
        .Range("A6").Interior.ColorIndex = 4
    End If
End With

J'ai également ajouté les feuilles des 24, 25 et 26 mai pour faire des essais par rapport à la date dépassée ou non.

Ca semble fonctionner assez bien.

Cordialement.

7calendrier-v1.zip (236.50 Ko)

Je me suis vraiment mal exprimé.

Les couleurs doivent apparaître dans l'onglet Calendrier . Alors c'est à dire, si dans l'Onglet 1 janvier la cellule B28 = 0 ajouter la couleur rouge dans l'onglet Calendrier à la date associé au 1 janvier et ainsi de suite avec les couleurs.

Je ne sais pas si je suis assez explicite.

Je suis vraiment désolé.

Merci encore de votre temps

Comme ça ?

' Rajout Yvouille
With ActiveSheet
    Target.Interior.Pattern = xlNone ' Remise à zéro par sécurité
    If D <= Date And .Range("B28") = 0 Then
        Target.Interior.ColorIndex = 3
    ElseIf D <= Date And .Range("B28") < 9 Then
        Target.Interior.ColorIndex = 6
    ElseIf D <= Date Then
        Target.Interior.ColorIndex = 4
    End If
End With
5calendrier-v2.zip (246.52 Ko)

Tout est parfait

Merci

Salut,

Je suis un peu étonné que tu dises que tout est en ordre

Dans la version 2, tu as bien les jours qui s'affichent en rouge, jaune ou vert selon les valeurs inscrites dans les feuilles correspondantes lors de leur ouverture, mais ces colorations ne changent pas si les résultats sont modifiés sur les feuilles des jours.

J'ai donc ajouté une macro qui modifie les couleurs des jours sur la feuille ''Calendrier'' en fonction des modifications des feuilles des jours.

Dans ce fichier, j'ai ajouté les feuilles des jours 27, 28 et 31 mai afin que tu puisses faire des essais.

Cordialement.

2calendrier-v3.zip (254.73 Ko)

Merci bcp pour le temps que tu mets a résoudre nos problème.

Fonctionne comme un charme.

Rechercher des sujets similaires à "changement couleur condition"