Changer le libelleé d'une checkbox "shapes" en VBA ?

sergio_bzh

XLDnaute Nouveau
Bonjour,

je suis en train de bloquer sur un truc certainement très simple mais après 1 heure de recherche j'abandonne. J'ai parcouru le forum , fait des recherches sur le net mais tout ce que j'essaie ne fait rien ou provoque une erreur.

J'ai des checkBox (Shapes) sur ma feuille et je voudrais modifier le texte par macro.

A priori la solution serait :
Code:
Dim ctrl as Shape
For each ctrl in Activesheet.Shapes
    ctrl.TextFrame.Characters.text = "mon libellé chkbox"
Next
Mais cela me provoque un "Object does not support this property or method"

J'ai bien essayé d'autres properies à tout hasard , rien ne fonctionne :

Code:
.Name 
.OLEFormat.Object.Name
.OLEFormat.Object.Value
.OLEFormat.Object.caption
.TextFrame.Characters.caption
.TextFrame.Characters.Text

Comment faire ??? Merci d'avance !
Sergio
 

sergio_bzh

XLDnaute Nouveau
Re : Changer le libelleé d'une checkbox "shapes" en VBA ?

Merci mais cela fait partie des nombreuses que j'ai essayé sans succès (cf mon post initial). L'erreur est toujours la même : "Object does not support this property or method"

J'ai finalement trouvé une solution :) avec
Code:
Activesheet.OLEObjects("CheckBox1").Object.Caption = "mon libellé"

le modèle objet de Excel est quand même une sacré boite noire ! :(

Merci pour les réponses.
 
G

Guest

Guest
Re : Changer le libelleé d'une checkbox "shapes" en VBA ?

Bonjour,

Tu peux toujours ajouter un espion ou utiliser l'affichage des variables locales lorsque tu as ce genre d'erreur, pour explorer tes objets.

A+
 

sergio_bzh

XLDnaute Nouveau
Re : Changer le libelleé d'une checkbox "shapes" en VBA ?

C'est vrai que cela m'aurait permis de trouver la solution ici qui est :
Code:
ctrl.DrawingObject.Object.Caption = "LeLibellé"
Il manquait un ".Object" dans la solution proposée.

En fait j'ai tendance à ne pas utiliser les espions sur des objets plutôt complexes. Il y a tellement de properties et objects que c'est assez difficile . Par contre je me fie plutôt à la complétion mais je vois qu'elle ne fonctionne pas toujours !

Par exemple ici , je vois bien bien dans mon espion que j'ai DrawingObject mai je n'y ai pas accès en compétion !
 

Pièces jointes

  • drawObj.jpg
    drawObj.jpg
    54.8 KB · Affichages: 250
  • completion.jpg
    completion.jpg
    30.3 KB · Affichages: 230
G

Guest

Guest
Re : Changer le libelleé d'une checkbox "shapes" en VBA ?

re,

Vba, n'est pas visual studio.

En tout cas, chez moi, avec un objet Shape Case à cocher de la barre d'outils formulaire, je peux atteindre directement la propriété caption par DrawingObject.

Ctrl.DrawingObject.Caption = "Truc machin"
Ou par
Ctrl.OleFormat.Object.Caption ="bidule chose"

Et comme ces propriétés sont dépendantes de la nature des objets hébergé par le shape, je me demande si nous parlons des même cases à cocher.


A+
 
Dernière modification par un modérateur:

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50