Excell : Couleur sur bouton

[Résolu/Fermé]
Signaler
Messages postés
4
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
7 avril 2010
-
Messages postés
4
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
7 avril 2010
-
bonjour,
j'utilise une feuille avec une trentaine de bouttons qui active des macros.
actuellement pour donner une couleur a un bouton, j'utilise des comparaisons et ca prends bcp de place.

je voulais utiliser une fonction de ce type, mais je recois tjrs un message d'erreur de syntaxe sur la ligne repérée. L'autre en dessous fonctionnant tres bien.

Sub Macro1()

Dim Nomdubouton As String
' dans la cellule B4, se trouve la valeur DD21, le nom du bouton est DD21
Range("B4").Select
Nomdubouton = ActiveCell()
Sheets("Section 2").Select

=> ActiveSheet.("Nomdubouton").BackColor = &H8000000F

ActiveSheet.DD21.BackColor = &HFF00&

End Sub

si quelqu'un peut me donner la bonne syntaxe, ce serait parfait
merci

7 réponses

Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 284
Bonjour,

je n'ai pas testé, mais surement qu'en écrivant ceci :

Sub Macro1()

Dim Nomdubouton As String
Nomdubouton=Range("B4").Value
Sheets("Section 2").Select
ActiveSheet.(Nomdubouton").BackColor = la_couleur

End Sub


ça fonctionnera mieux.

Mais une petite question : à quoi correspondent les 2 formats que vous avez mis pour les couleurs ?

Cordialement.
Messages postés
4
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
7 avril 2010

hello,

merci pour la réponse mais le système me dit tjrs qu'il y a une erreur avec ou sans parenthèses
les formats de couleurs se retrouvent dans les propriétés du bouton

a+
Horsy
Messages postés
17549
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 septembre 2021
4 740
Salut,

Je ne comprends pas très bien ce que tu veux faire, changer la couleur d'un bouton qui à été activé, mais si tu actives un autre bouton le premier doit il reprendre sa couleur initiale .
Et tes boutons sont ils des CommandButton réalisés avec la barre d'outils contrôle ou avec la barre formulaire !
Messages postés
4
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
7 avril 2010

salut,
ces boutons sont des CommandButon. En gros, sur une feuille, j'ai une trentaine de boutons qui m'envoie sur une feuille excel pour faire la gérance de machines.
En fonction de l'état de ces machines, les boutons sur la feuille principale sont de couleurs différentes (vert, rouge, gris ou blanc).
Actuellement je gère cela en vba, mais le code prends 4 pages A4 avec la méthode des "if then" ... donc je voudrias réduire cela.
Chaque bouton est indépendant et aucun n'interréagi avec un autre.

C'est " ActiveSheet.Nomdubouton.BackColor = &H8000000F " qui me pose problème. VBA ne veut pas prendre en compte la variable Nomdubouton.

> si je mets le nom rèel du bouton, ca marche

euhhh pas trop long l'explication ? lol

a+ Horsy
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
620
Bonjour Juliusus et Mike-31

Selon moi la syntaxe est un peu plus délicate cela doit être celle ci :

ActiveSheet.OLEObjects(Nomdubouton).Object.BackColor = &H8000000F

A+
Messages postés
17549
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
24 septembre 2021
4 740
Re,

De renommer le bouton est délicat, je te conseille garder le nom par exemple pour le bouton 1 (Name CommandButton1) ce qui ne t'empêcher pas de changer le titre sur le bouton (Caption)

Private Sub CommandButton1_Click()
'le code est pour rouge
CommandButton1.BackColor = &HFF&
'éventuellement tu peux écrire
ActiveSheet.CommandButton1.BackColor = &HFF&

'ou pour bleu
ActiveSheet.CommandButton1.BackColor = &HFF0000
End Sub
Merci Pilas31
c'est toi qui a la bonne réponse, je ne connaissais pas du tout le truc du OLEObjets (vais me renseigner illico la dessus

vais pouvoir virer des lignes de code à tour de bras là .. lol

et merci aussi à ceux qui mon répondu
à+ Horsy
Messages postés
4
Date d'inscription
mercredi 7 avril 2010
Statut
Membre
Dernière intervention
7 avril 2010

Merci Pilas

formule finale :
Sheets("Section 2").OLEObjects(Range("B4").Value).Object.BackColor = &H8000000F

et merci aussi à ceux qui mon répondu
Juliusus