Bouton avec 3-4 couleurs dynamiques

  • Initiateur de la discussion Initiateur de la discussion Mi_
  • Date de début Date de début

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 !

Mi_

XLDnaute Occasionnel
Bonjour le forum,

Je suis à la recherche d'une solution pour assigner à un bouton (objet) 3 ou 4 couleurs qui changent selon un click dessus.

J'ai déjà vu le 'Bouton bascule' qui a une option 'Triplestate' qui lui assigne 3 stades lors du click (ce qui me va bien), mais j'ai pas trouvé comment lui assigner des couleurs différentes pour chaque stade. Y as-t-il un moyen de faire cela ?

Les couleurs seraient Blanc, vert, (rose) et Rouge, donc 3-4 couleurs qui varient en l'ordre selon les clicks.

Ou sinon peut-on utiliser un autre type d'objet, mais comment lui assigner les couleurs au click ?

Merci d'avance pour tout conseil,
Mi
 
Bonsoir,

Juste pour le fun, on peut tenter le coup avec un simple contrôle 'CommandButton'.

Si sur ton USF ton contrôle s'appelle CommandButton1 (original, n'est-ce aps ?), essaie ce qui suit :

---------
Dim coul(3) As Double
Public coulcompt As Integer

Private Sub CommandButton1_Click()
CommandButton1.BackColor = coul(coulcompt)
coulcompt = coulcompt + ((coulcompt >= 3) * 4) + 1
End Sub

Private Sub UserForm_Initialize()
coul(0) = &HFFFFFF 'blanc
coul(1) = &HC000& 'vert
coul(2) = &HC0C0FF 'rose
coul(3) = &HFF& 'rouge
End Sub
---------

Ca conviendrait ??

Bonne soirée
 
Bonsoir Mi et Rai,

J'ai La, Si et Fa aussi Lol

Une autre approche : le click du bouton simple définit sa couleur :

Option Explicit
Dim N As Byte
Private Sub CommandButton1_Click()
N = N + 1
If N > 4 Then N = 1
If N = 1 Then CommandButton1.BackColor = RGB(0, 0, 255)
If N = 2 Then CommandButton1.BackColor = RGB(255, 255, 0)
If N = 3 Then CommandButton1.BackColor = RGB(255, 0, 0)
If N = 4 Then CommandButton1.BackColor = RGB(0, 255, 0)
End Sub

Quatre couleurs qui peuvent être plus.

Cordialement

CBernardT
 
Bonsoir Rai et CBernardT, merci de votre aide et votre gentilesse.

J'ai finalement retenu la solution de CBernardT, car plus simple (même pour moi, lol).

Cependant j'ai une question 'auxiliaire' pour CBernardT: quel était le code si on voudrais mettre des dizaines de boutons similaires sur une feuille, chaque bouton changeant sa couleur au click de manière indépendante ?

Pour ne pas devoir remplir manuellement 'CommandButton1', 'CommandButton2' etc et prendre en compte tous les boutons de la feuille, disons de 1 à 50.

Merci encore,
Mi
 
re-salut,

Si tes commandbutton s'appellent commandbutton1 à commandbutton50, je te propose la solution suivante :

Dim N(50) As Byte

Private Sub CommandButton1_Click()
chfond (ActiveControl.Name)
End Sub

Private Sub CommandButton10_Click()
chfond (ActiveControl.Name)
End Sub

Sub chfond(moi As String)
Num = Right(moi, Len(moi) - 13)
N(Num) = N(Num) + 1
If N(Num) > 4 Then N(Num) = 1
If N(Num) = 1 Then UserForm1.Controls(moi).BackColor = RGB(0, 0, 255)
If N(Num) = 2 Then UserForm1.Controls(moi).BackColor = RGB(255, 255, 0)
If N(Num) = 3 Then UserForm1.Controls(moi).BackColor = RGB(255, 0, 0)
If N(Num) = 4 Then UserForm1.Controls(moi).BackColor = RGB(0, 255, 0)
End Sub


N'oublie pas de remplacer UserForm1 par le nom de ta USF

Ca convient-il ??
 
Sur une feuille, et j'utilise le code de CBernardT, c'est à dire:

Option Explicit
Dim N As Byte
Private Sub CommandButton1_Click()
N = N + 1
If N > 4 Then N = 1
If N = 1 Then CommandButton1.BackColor = RGB(0, 0, 255)
If N = 2 Then CommandButton1.BackColor = RGB(255, 255, 0)
If N = 3 Then CommandButton1.BackColor = RGB(255, 0, 0)
If N = 4 Then CommandButton1.BackColor = RGB(0, 255, 0)
End Sub


Mais je ne sais pas comment couvrir tous les boutons de la feuille, d'un seul code.
 
- 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