Problème d'attribution de code couleur

Fermé
bejyves Messages postés 4 Date d'inscription mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016 - Modifié par bejyves le 19/10/2016 à 21:30
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 21 oct. 2016 à 15:45
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 samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
20 oct. 2016 à 05:53
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 mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016
20 oct. 2016 à 19:21
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 mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016
Modifié par bejyves le 20/10/2016 à 19:56
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 samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > bejyves Messages postés 4 Date d'inscription mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016
20 oct. 2016 à 23:22
Voici le fichier après adaptations
https://www.cjoint.com/c/FJuvvm8bECl

A+
0
bejyves Messages postés 4 Date d'inscription mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016
21 oct. 2016 à 10:18
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 samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523 > bejyves Messages postés 4 Date d'inscription mercredi 19 octobre 2016 Statut Membre Dernière intervention 21 octobre 2016
21 oct. 2016 à 15:45
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