Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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'avez vous voulu faire avec ce code :
VB:
For Page_menu = 1 To 8
    Sheets(Page_menu).Shapes("nav").Fill.forcolor.RGB = RGB(0, 0, 0)
Next Page_menu
Sur chaque page de 1 à 8 il recherche la shape NAV. Or je n'ai pas trouver de shape execpté sur la page Accueil et DD.
 

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
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
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…