XL 2013 Vba colorie un rectangle après sélection

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

CGU2022.

XLDnaute Junior
Bonjour exceliens... 😉

Est ce quelqu'un possède une macro ou un debut de code que je pourrai utiliser.

Contexte:

J'ai 3 rectangles : Rectangle1;Rectangle2;Rectangle3
Je souhaite que dans ce choix (uniquement ces 3) qui lance des macros.
Que le dernier rectangle clic/sélectionné change de couleur
Et revienne à sa couleur lorsque je clic/sélectionne sur un autre.

Cordialement



 
Solution
Bonjour CGU, xUpsilon,
En PJ une solution simple parmi d'autres :
VB:
Sub Colore()
    ' Couleurs par défaut des rectangles ( ici la même couleur )
    CouleurRectangle1 = RGB(219, 238, 244)
    CouleurRectangle2 = RGB(219, 238, 244)
    CouleurRectangle3 = RGB(219, 238, 244)
    ' Couleur du rectangle selectionné
    CouleurRectSelect = RGB(255, 0, 0)
    ' Mettre les couleurs initiales
    ActiveSheet.Shapes("Rectangle 1").Fill.ForeColor.RGB = CouleurRectangle1
    ActiveSheet.Shapes("Rectangle 2").Fill.ForeColor.RGB = CouleurRectangle2
    ActiveSheet.Shapes("Rectangle 3").Fill.ForeColor.RGB = CouleurRectangle3
    ' Mettre la couleur sur le rectangle selectionné
    ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB =...
Bonjour,

Pour l'exemple, voir ci dessous. A adapter au besoin et aux multiples Shapes (clic droit sur la Shape -> Affecter une macro)
VB:
Sub Rectangle1_Cliquer()
Feuil1.Shapes("Rectangle 1").Fill.ForeColor.RGB = RGB(255, 255, 255)
End Sub

Bonne journée,
 
Bonjour CGU, xUpsilon,
En PJ une solution simple parmi d'autres :
VB:
Sub Colore()
    ' Couleurs par défaut des rectangles ( ici la même couleur )
    CouleurRectangle1 = RGB(219, 238, 244)
    CouleurRectangle2 = RGB(219, 238, 244)
    CouleurRectangle3 = RGB(219, 238, 244)
    ' Couleur du rectangle selectionné
    CouleurRectSelect = RGB(255, 0, 0)
    ' Mettre les couleurs initiales
    ActiveSheet.Shapes("Rectangle 1").Fill.ForeColor.RGB = CouleurRectangle1
    ActiveSheet.Shapes("Rectangle 2").Fill.ForeColor.RGB = CouleurRectangle2
    ActiveSheet.Shapes("Rectangle 3").Fill.ForeColor.RGB = CouleurRectangle3
    ' Mettre la couleur sur le rectangle selectionné
    ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB = CouleurRectSelect
End Sub
 

Pièces jointes

Bonjour CGU, xUpsilon,
En PJ une solution simple parmi d'autres :
VB:
Sub Colore()
    ' Couleurs par défaut des rectangles ( ici la même couleur )
    CouleurRectangle1 = RGB(219, 238, 244)
    CouleurRectangle2 = RGB(219, 238, 244)
    CouleurRectangle3 = RGB(219, 238, 244)
    ' Couleur du rectangle selectionné
    CouleurRectSelect = RGB(255, 0, 0)
    ' Mettre les couleurs initiales
    ActiveSheet.Shapes("Rectangle 1").Fill.ForeColor.RGB = CouleurRectangle1
    ActiveSheet.Shapes("Rectangle 2").Fill.ForeColor.RGB = CouleurRectangle2
    ActiveSheet.Shapes("Rectangle 3").Fill.ForeColor.RGB = CouleurRectangle3
    ' Mettre la couleur sur le rectangle selectionné
    ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.RGB = CouleurRectSelect
End Sub

C'est super cela va me permettre (pour un utilisateur) de mettre en évidence la dernière macro lancée..
Pour mon cas c'est différents affichages....

Un grand merci .. 😉
 
Bonjour,

Pour l'exemple, voir ci dessous. A adapter au besoin et aux multiples Shapes (clic droit sur la Shape -> Affecter une macro)
VB:
Sub Rectangle1_Cliquer()
Feuil1.Shapes("Rectangle 1").Fill.ForeColor.RGB = RGB(255, 255, 255)
End Sub

Bonne journée,
Bonjour mais la solution de sylvanu et son exemple correspond exactement à ce que je souhaitais.
Merci de m'avoir répondu cela me servira ultérieurement.
 
impeccable...
.
1663787500177.png

1663787533715.png

j' ai changé la couleur... 😉

j'ai effectué un call/module/Colore dans chaque macro lancée par clic dans la forme (rectangle)...
 
Bonjour,

Une possibilité est que la macro ait été placée dans un module d'un autre fichier que celui dans lequel tu veux l'utiliser.
Si "AC 210004 TVX ......." est le nom d'un fichier qui n'est pas celui dans lequel tu veux exploiter la macro, c'est que tu n'as pas enregistré la macro au bon endroit.

Bonne journée,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour