Colorer plusieurs cellules si une couleur est utilisée

Bonjour à tous,

J'essais dessepérement de trouver une info quelque part mais je ne trouve pas la solution à mon problème. Je demande donc votre aide.

Je fais un planning et je souhaite avoir une cellule colorée en fonction d'une autre cellule colorée.

Je m'explique : lorsque je mets en jaune une case, j'aimerais qu'automatiquement, certaines cellules données se colorient aussi en jaune.

Le jaune est la couleur pour l'utilisation de notre salle de réunion.

Cependant, je dois pouvoir griser d'autres cellules en bleu sans que les autres se colorient. Il faut uniquement que cela se passe avec le jaune.

Par exemple, lorsque D1 est coloré en jaune, alors K1 et R1 se colorient en jaune.

Lorsque E3 est coloré en jaune, alors L3 et S3 se colorient en jaune.

Je vous ai joint mon modèle, j'ai coloré manuellement en jaune pour que vous puissiez voir le rendu que je souhaite.

Pour faire simple, lorsque qu'un des 3 noms du tableaux colore une cellule en jaune, dans une plage horaire donnée, il faut que les cellules correspondantes à la plage horaire des deux autres se colorient aussi (pour la réservation de la salle de réunion).

Est-ce clair ?

Merci par avance pour votre aide,

Alexis

14calendrier.xlsx (25.27 Ko)

(re-)Bonjour,

Le fait de colorer une cellule n'est pas -en soi- un "événement" qu'on peut exploiter en programmation (et pour autant que je sache, la seule façon de répondre à la demande, c'est par ce biais) ... J'ai donc utilisé une autre procédure événementielle: le clic droit. Tu verras bien si ça te convient?

Faire un clic droit sur l'onglet de la feuille "CALENDRIER" > Visualiser le code > Coller le code ci-dessous ... et tester le clic droit dans la feuille. Un message devrait apparaître dans les colonnes correspondant à une plage horaire; ailleurs, le menu contextuel "classique" apparaît.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
tablo = Array("7h30 - 9h00", "9h00 - 10h30", "10h30 - 12h00", "13h00 - 14h30", "14h30 - 16h00", "16h00 - 18h00")
'on teste le contenu de la ligne 2 et on vérifie si elle contient une des plages horaires ci-dessus
existe = Application.Match(Cells(2, Target.Column), tablo, 0)
'si la ligne 2 ne contient pas de plage horaire, on sort de la procédure
If IsError(existe) Then Exit Sub
'on affiche une boîte de dialogue
bloquerSalle = MsgBox("Voulez-vous réserver la salle de réunion ?", vbYesNo, "Bonjour")
'si l'utilisateur répond "oui"
If bloquerSalle = 6 Then
    'pour tenir compte de la colonne vide entre AM et PM
    existe = existe + IIf(existe > 3, 1, 0)
    Cells(Target.Row, existe + 3).Interior.ColorIndex = 6
    Cells(Target.Row, existe + 10).Interior.ColorIndex = 6
    Cells(Target.Row, existe + 17).Interior.ColorIndex = 6
    'on n'affiche pas le menu contextuel lié au clic droit
    Cancel = True
End If
End Sub

waahhhhh c'est incroyable ce que tu m'as fait là.

C'est absolument ce que je souhaitais faire mais sans espérer un résultat comme ça.

Je te remercie beaucoup, c'est vraiment super

Content que ça te convienne

... Hélas, à mon avis, tu t'apercevras, en cours d'utilisation que des cas particuliers vont apparaître, auxquels tu n'avais pas songé (et moi non plus!)

Rechercher des sujets similaires à "colorer couleur utilisee"