Je voudrais changer le titre d'un bouton au moyen d'une macro.
Il existe, à ma connaissance, 2 types de boutons dans Excel :
- Boutons de Formulaire
- Boutons de Controles ActiveX
Supposons que j'ai 2 boutons sur ma feuille : 1 bouton dit de Formulaire qui s'appelle "Bouton1" et 1 bouton dit de Controles ActiveX qui s'appelle "Bouton2".
Si j'écris dans ma macro :
[Bouton1].Caption = "Lolo"
et que je la déclenche, va apparaître alors comme titre "Lolo" sur ce bouton.
Re : Changer le titre d'un bouton au moyen d'une macro
Bonjour Magic Doctor,
Sauf erreur de ma part, je crois qu'on ne peut pas agir sur les propriétés des contrôles de formulaire. Ces derniers ont été maintenus par B. Gates pour raison de compatibilité avec les anciennes versions d'Excel.
Dans tous les cas, je te conseille d'utiliser les contrôles de la barre d'outils Contrôles, qui sont bien plus souples et puissants que ceux de la barre d'outils Formulaire.
Merci pour l'astuce, job75.
Mais je reste convaincu qu'il est plus simple d'utiliser les contrôles activeX, qui restent davantage dans la ligne générale de VBA.
Toutefois, je note cette possibilité dans mes tablettes.
Re : Changer le titre d'un bouton au moyen d'une macro
Merci Papou-net & job75.
Job75, j'ai essayé ta syntaxe, mais ça n'a pas marché.
Je suis donc "condamné" à changer de type de boutons...
En revanche, peut-on modifier la couleur de ces boutons (comme on peut le faire avec les boutons de Formulaires), sans être condamnés au "gris sinistre" ?
J'ai essayé ainsi :
[Bouton1].Select
With Selection
.Caption = "Lulu" -----> OK
.Font.ColorIndex = 30 -----> OK
.BackColor = 20 -----> ne marche pas
End With
Re : Changer le titre d'un bouton au moyen d'une macro
Re,
J'abonde dans ton sens Papou-net.
Mais les boutons ActiveX ont 2 défauts (en tout cas je n'ai pas encore trouvé de solution) :
- on ne peut pas (?) trouver le bouton sur lequel on a cliqué, alors que pour les boutons Formulaires on obtient le nom par Application.Caller
- il faut une macro de type CommandButton1_Click par bouton, voyez quand y en a 1000... Alors qu'une seule et même macro peut être affectée à tous les boutons Formulaires.
Sub Macro2()
With ActiveSheet.OLEObjects("BoutonEcran2").Object
.Caption = "Lala"
'.Font.ColorIndex = 25 'marche pas
.BackColor = &HFFFF& '&H00E6F1FE& à l'origine
End With
ActiveSheet.DrawingObjects("BoutonLolo").Characters.Text = "TOTO"
End Sub
Re : Changer le titre d'un bouton au moyen d'une macro
Bonsoir,
Je termine ce qui était commencé.
Pour un bouton ActiveX, la couleur de police est déterminée par la propriété ForeColor :
Code:
Sub Macro2()
With ActiveSheet.BoutonEcran2 'le plus simple pour un objet ActiveX
.Caption = "Lulu"
.ForeColor = &HFFFFFF '&H00095FC7& à l'origine
.BackColor = &H80& '&H00E6F1FE& à l'origine
End With
ActiveSheet.DrawingObjects("BoutonLolo").Characters.Text = "TOTO"
End Sub