Problème d'attribution de code couleur

bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous!

Je suis tout nouveau sur le forum et j'espère obtenir de l'aide sur un problème épineux pour moi. J'ai crée un classeur Excel qui donne une vue d'ensemble de l'agenda d'une équipe. Dans la feuille 1 on retrouve l'agenda en question constitué en lignes des évènements et en colonne du calendrier. Dans la feuille 2 j'ai recensé les membres de l'équipe de la manière suivante: dans la colonne A on a la liste des membres, dans la colonne B leurs initiaux, et la colonne C la couleur que chaque membre peut s'attribuer à loisir. Maintenant que le décor est planté voici mon problème : lorsqu'un événement est attribué à un membre de l'équipe, il doit placé ses initiaux dans les cellules correspondante au niveau de la Feuille 1 pour les dates concernées. Une fois que c'est fait, comment faire pour que les cellules portant lesdits initiaux prennent automatiquement la même couleur de fond que celle attribuée au membre de l'équipe au niveau de la Feuille 2?Exemple : En Feuille 2, j'ai attribué à Paul la couleur "bleu" dans la feuille 2 et son initial c'est "P". Comment faire pour qu'a chaque que je rentrerai l'initial "P" dans la Feuille 1, la cellule se colore automatiquement en "bleu"( comme sur l'image ci-dessous). Je vous remercie d'avance pour vos contributions.
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526
 
Bonjour,

Voici une proposition avec une procédure évènementielle.
https://www.cjoint.com/c/FJudZB02Sx8

Private Sub Worksheet_Change(ByVal Target As Range)
Dim C As Range
If Target.Count > 1 Then Exit Sub
If Not Application.Intersect(Target, Range("C3:L3")) Is Nothing Then
If Target <> "" Then
With Worksheets("BD")
Set C = .Range("B2:B" & .Range("B" & Rows.Count).End(xlUp).Row).Find(Target, , xlValues, xlWhole)
If Not C Is Nothing Then
Target.Interior.Color = C.Offset(, 1).Interior.Color
End If
End With
Else
Target.Interior.Color = xlNone
End If
End If
End Sub

A+
1
bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci grandement Cyrus. En plus c'est sympa d'avoir carrément réaliser la feuille vue que VBA c'est pas trop mon fort.
0
bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Mais par contre j'aimerai encore pouvoir faire en sorte que la couleur se mette automatiquement à jour dans la feuille Agenda si jamais je la modifie dans la feuille BD. Comment je m'y prend stp?

Merci encore pour ton coup de pouce.
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526 > bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le fichier après adaptations
https://www.cjoint.com/c/FJuvvm8bECl

A+
0
bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bien Cyrus, mais il y a encore un problème. Le processus se fait en continue du coup la feuille plante.Pourrais-tu faire en sorte que le processus ne s'effectue que s'il détecte un changement au niveau de la colonne "code couleur"? Ca règlerait peut-être le problème.
0
Gyrus Messages postés 3334 Date d'inscription   Statut Membre Dernière intervention   526 > bejyves Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Il n'existe pas d'évènement permettant de détecter la modification du remplissage d'une cellule. C'est pour cela que j'ai utilisé l'évènement Worksheet.Activate de la feuille "Agenda".
Ainsi, lorsque tu modifies la couleur dans la feuille "BD", la couleur se met automatiquement à jour dans la feuille Agenda, au retour dans cette feuille.

Par contre, je ne comprends pas pourquoi le processus se fait en continu. Il y a sûrement une particularité que tu ne m'as pas indiquée car cela ne se produit pas dans le fichier joint.

A+
0