Excell : Couleur sur bouton

Résolu/Fermé
Juliusus Messages postés 4 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 7 avril 2010 à 09:27
Juliusus Messages postés 4 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 7 avril 2010 à 20:44
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
A voir également:

7 réponses

chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 1 306
7 avril 2010 à 09:48
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.
0
Juliusus Messages postés 4 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 13:22
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
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
7 avril 2010 à 13:55
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 !
0
Juliusus Messages postés 4 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 14:08
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
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
7 avril 2010 à 15:48
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+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
7 avril 2010 à 16:05
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
0
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
0
Juliusus Messages postés 4 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 20:44
Merci Pilas

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

et merci aussi à ceux qui mon répondu
Juliusus
0