Changer le titre d'un bouton au moyen d'une macro

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

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.

Maintenant si j'écris :

[Bouton2].Caption = "Lolo"

ça plante !

Il y a-t-il un moyen pour résoudre ce problème ?
 

Papou-net

XLDnaute Barbatruc
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.

Espérant avoir répondu.

Cordialement.
 

job75

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

Bonjour Magic Doctor, Papou-net,

D'accord avec toi Papou-net, mais voyez :

Code:
ActiveSheet.DrawingObjects("Button 1").Characters.Text = "TOTO"

Edit : "Button 1" ou aussi "Bouton 1" (version française).

A+
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

Bonjour Magic Doctor, Papou-net,

D'accord avec toi Papou-net, mais voyez :

Code:
ActiveSheet.DrawingObjects("Button 1").Characters.Text = "TOTO"

Edit : "Button 1" ou aussi "Bouton 1" (version française).

A+

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.

Cordialement.
 

Magic_Doctor

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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.

Edit :

Job75, j'ai essayé ta syntaxe, mais ça n'a pas marché.

Pas normal, chez moi sur Excel 2003 ça marche bien...

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

Re Magic Doctor,

.BackColor = 20 ne va pas.

Il faut mettre un code couleur RGB que l'on obtient facilement, dans cette propriété du bouton, en lui donnant la couleur choisie dans la palette.

Edit : salut Brigitte :) content de te croiser

A+
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

J'ai une version 2007 d'Excel (en espagnol).

Je joins un exemple. La macro se trouve dans "Módulo1".

Si vous pouviez avoir la gentillesse de vérifier ce qui cloche.

Merci d'avance.
 

Pièces jointes

  • Boutons - Compatible Excel 2003.xls
    35.5 KB · Affichages: 83
Dernière édition:

job75

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

Re,

Je reviens sur les boutons Formulaires :

Job75, j'ai essayé ta syntaxe, mais ça n'a pas marché.

Peut-être que sur Excel 2007 ça ne marche pas sans sélectionner l'objet (horreur et putréfaction).

Alors essaye le code de l'enregistreur de macro ;)

Code:
ActiveSheet.Shapes("Button 1").Select
Selection.Characters.Text = "TOTO"
ActiveCell.Activate

A+
 

job75

XLDnaute Barbatruc
Re : Changer le titre d'un bouton au moyen d'une macro

Re,

La macro se trouve dans "Módulo1".

Si vous pouviez avoir la gentillesse de vérifier ce qui cloche.

Dis donc tu inversais les boutons :confused:

Chez moi ceci marche bien :

Code:
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

Pour la propriété Font ça ne marche pas.

Désolé plus le temps, des invités vont arriver.

A+
 

job75

XLDnaute Barbatruc
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

A+
 

Discussions similaires

Statistiques des forums

Discussions
314 626
Messages
2 111 299
Membres
111 094
dernier inscrit
MFrequence