Colorer une forme à partir d'un menu déroulant

benjamin.prade

XLDnaute Nouveau
Bonjour à tous,

Je suis à la recherche d'une façon de changer la couleur des formes constituant la mise en page de mon fichier à partir d'un menu déroulant.

Je vous ai joint un document qui résumé mon problème.

En gros sur le deuxième onglet j'ai une liste de numéros correspondants chacun à une couleur.
Dans mon premier onglet j'ai un menu déroulant me permettant de choisir un de ces numéros ainsi qu'un rectangle.
J'aimerais qu'en sélectionnant un de mes numéros dans mon menu déroulant le rectangle se colore de la même couleur que la case correspondante à ce numéro dans mon deuxième onglet.

Pour le moment il y a juste une macro liée au bouton qui change la couleur du cadre et de l'intérieur de la couleur écrite dans cette macro et pas à partir d'une couleur de cellule. J'aurais aimé que cela se fasse tout seul sans bouton juste en changeant la valeur du menu déroulant.

Je ne sais pas si c'est clair, je vous avoue que j'ai un peu de mal à l'expliquer clairement mais n'hésitez pas à me poser des questions.

Merci d'avance !!!
 

Pièces jointes

  • Classeur1.xlsm
    16.8 KB · Affichages: 28
  • Classeur1.xlsm
    16.8 KB · Affichages: 34
  • Classeur1.xlsm
    16.8 KB · Affichages: 35

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Colorer une forme à partir d'un menu déroulant

Bonjour,

voir PJ

Fonctionne aussi si la liste est alpha.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect([d6], Target) Is Nothing Then
   On Error Resume Next
   ActiveSheet.Shapes("monshape").Fill.ForeColor.RGB = [liste].Find(Target, LookAt:=xlWhole).Interior.Color
  End If
End Sub

JB
 

Pièces jointes

  • ColorShape.xls
    46 KB · Affichages: 21
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Colorer une forme à partir d'un menu déroulant

Bonjour.

Dans Feuil1 (Page) :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then Me.Shapes("Rectangle 1").Fill.ForeColor.RGB _
   = Feuil2.
[Liste].Item(Me.[D6].Value, 2).Interior.Color
End Sub
 

Discussions similaires

Réponses
5
Affichages
580
Réponses
1
Affichages
510

Statistiques des forums

Discussions
314 653
Messages
2 111 577
Membres
111 205
dernier inscrit
Adrien25