XL 2019 Couleurs d'un rectangle

crazyguismo

XLDnaute Nouveau
Bonjour la communauté,

Voila je bute sur un sujet, je suis en train de réaliser une gestion de stock automatiséé.
Il ne me reste plus qu'à faire des remplacements de couleur sur la page congif (pour le moment je ne travail que sur cette feuille)
Je vous joins le fichier.

Mon but est de changer la couleur du rectangle nommé "nav" en cliquant sur la couleur souhaiter. (module couleurs_fond)
dans un deuxième temps j'aimerai faire un contour sur ces rectangle couleur. (module couleurs_page)

lors du débogage la ligne

For Page_menu = 1 To 8
Sheets(Page_menu).Shapes("nav").Fill.forcolor.RGB = RGB(0, 0, 0)
Next Page_menu

pouvez-vous m'aider?

merci
 

Pièces jointes

  • gestion du stock.xlsm
    190.6 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Qu'appelez vous le shape NAV ?
En tout cas ça ne peut que bogguer sur ce point puisqu’il n'y a pas de shape NAV sur chaque page.
Les 8 shapes dont vous parlez ne seraient-ils pas les 8 boutons présent dans Config ?
Si c'est ça alors il faut faire :
VB:
Sub couleurs_fond1()
For i = 1 To 8
    ActiveSheet.Shapes("page" & i).Fill.ForeColor.RGB = RGB(0, 0, 0)
Next i
ActiveSheet.Shapes("bccolor1").Line.ForeColor.RGB = RGB(192, 0, 0)
ActiveSheet.Shapes("bccolor2").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor3").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor4").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor5").Line.ForeColor.RGB = RGB(255, 255, 255)
End Sub
( En plus c'est ForeColor et non ForColor )
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Oui mais si le shape n'existe pas il y a fatalement erreur.
Dans ce cas là c'est plus simple :
VB:
Sub couleurs_fond1()
ActiveSheet.Shapes("NAV").Fill.ForeColor.RGB = RGB(0, 0, 0)
ActiveSheet.Shapes("bccolor1").Line.ForeColor.RGB = RGB(192, 0, 0)
ActiveSheet.Shapes("bccolor2").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor3").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor4").Line.ForeColor.RGB = RGB(255, 255, 255)
ActiveSheet.Shapes("bccolor5").Line.ForeColor.RGB = RGB(255, 255, 255)
End Sub
 

patricktoulon

XLDnaute Barbatruc
re
serait ce cela que tu veux faire
demo3.gif
 

patricktoulon

XLDnaute Barbatruc
re
alors 'temballe pas car c'est le boxon ton fichier

DONC pour commencer
tu va attribuer la même macro a tes carrés sur la ligne couleur
j'ai repris le nom de la tienne "couleurs_fond1"

autrement dis tes 5 boutons vont appeler la même macro
ensuite la macro
LA MACRO
VB:
Sub couleurs_fond1()
couleur = ActiveSheet.Shapes(Application.Caller).Fill.ForeColor'on identifie la couleur du bouton cliqué
    Sheets("config").Shapes("nav").Fill.ForeColor.RGB = (couleur)'on applique cette couleur  au shape("nav")
'pour le visuel
For i = 1 To 5'on enleve le tour rouge des carré ( je l'ai mis en rouge et de taille 3 dans les propriété)
ActiveSheet.Shapes("bccolor" & i).Line.Visible = False
Next
ActiveSheet.Shapes(Application.Caller).Line.Visible = True' on met le pourtour  en visible uniquement sur celle qui est cliquée  

'ActiveSheet.Shapes("bccolor1").Line.forcolor.RGB = RGB(192, 0, 0)'poubelle
'ActiveSheet.Shapes("bccolor2").Line.forcolor.RGB = RGB(255, 255, 255)'poubelle
'ActiveSheet.Shapes("bccolor3").Line.forcolor.RGB = RGB(255, 255, 255)'poubelle
'ActiveSheet.Shapes("bccolor4").Line.forcolor.RGB = RGB(255, 255, 255)'poubelle
'ActiveSheet.Shapes("bccolor5").Line.forcolor.RGB = RGB(255, 255, 255)'poubelle

End Sub
voila deja pour le fond nav et le visuel sur le bouton cliqué
;)
 

Discussions similaires

Réponses
7
Affichages
392