comment changer le nom d'un commandbutton sous VB

jarc76

XLDnaute Nouveau
Bonjour a tous,

Voila, j'ai créé un bouton par l'instruction :

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=0, Top:= 1, Width:=107.25, Height:= 19.5).Select

et je voudrais changer son nom (enfin le 'caption' qui apparait sur le bouton) sous vb, par une instruction du meme type....

Quelqu'un saurait il commment on fait ca ??

Merci bien ...
 

Lii

XLDnaute Impliqué
Re : comment changer le nom d'un commandbutton sous VB

Bonsoir,

J'utilise un code de ce genre :
Code:
Sub Creer()
  Dim bouton As OLEObject
  On Error Resume Next
  With ActiveSheet
    .OLEObjects("CommandButton1").Delete
  End With
  Set bouton = Feuil1.OLEObjects.Add("Forms.CommandButton.1")
  With bouton
    .Object.Caption = "nouveau nom"
    .Width = 91.5
    .Top = Range("A1").Top
    .Left = Range("A1").Left
  End With
'Création de la macro
...
 

kjin

XLDnaute Barbatruc
Re : comment changer le nom d'un commandbutton sous VB

Bonsoir,
Soit tu le renommes à la création
Code:
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=0, Top:=1, Width:=107.25, _
Height:=19.5).Select
Selection.Name = "Le nom que tu veux"
Soit tu le renommes après
Code:
Sheet(la feuille).Shapes("L'ancien nom").Name = "Le nom que tu veux"
A+
kjin
 

Staple1600

XLDnaute Barbatruc
Re : comment changer le nom d'un commandbutton sous VB

Bonjour



Tout dépends de quel bouton on parle ;)



Code:
Sub bo_CONTROLES()
'ici  issu de la BO Contrôles
ActiveSheet.CommandButton1.Caption = "tutu"
End Sub
Sub bo_FORMULAIRE()
'ici issu de la BO Formulaire
ActiveSheet.Shapes("Bouton 2").TextFrame.Characters.Text = "toto"
End Sub

(A tester un avec un CommandButton (contrôle) et un un bouton (Shape) créé avec la bo Formulaire
(Normalement il prendra le nom Bouton 2 dans une feuille vierge )
 
Dernière édition:

jarc76

XLDnaute Nouveau
Re : comment changer le nom d'un commandbutton sous VB

oui ca marche bien , mais il se passe quelque chose de bizarre :

Quand je créé un commandbutton manuellement (Bo-Controles), je peux changer le nom en auto sans probleme par l'instruction "ActiveSheet.CommandButton1.Caption = "tutu""...

Mais quand je créé un command button en "auto" par l'instruction :

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False , DisplayAsIcon:=False, Left:=366, Top:=9.75, Width:=108, Height:=30).Select

Et bien cela ne marche plus .... j'ai un message d'erreur

de plus , avec les commandebutton créé en auto, si je fais un clic droit dessus, je n'ai plus le choix 'propriétés', je pense que les deux problemes sont liés et que les commandbutton créés par Vb ne sont pas les memes que ceux créé directement sous excel par le Bo- controles ( ec ca ressemble pas non plus a un command buton créé depuis le bo-formulaires...)

Bref, j'arrive pas a créer un commandbutton sous vb et a le renommer sous Vb ...

HELP ....

Si mes explications sont pas claires, je peux envoyer le fichier ...
 

excalibur

XLDnaute Impliqué
Re : comment changer le nom d'un commandbutton sous VB

bonjour le fil
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=366, Top:=9.75, Width:=108, Height:=30).Select
pas espace dans commandbutton
 

jarc76

XLDnaute Nouveau
Re : comment changer le nom d'un commandbutton sous VB

Bien entendu que je l'ai lu .... et avec grande attention....

Mais comme je te l'expliquais ,tes deux propositions fonctionnent sans pbs...
Mais si je créé le command button avec l'instruction deja inscrite au dessus ( et sans l'espace, on est bien d'accord , Jean Pierre...), l'instruction pour changer le nom ne fonctionnent plus ...

ca fonctionne si le commandbutton a été créé manuellement mais ca fonctionne pas si le command button a été créé par vb ...

j'y comprends rien ....
 

MichelXld

XLDnaute Barbatruc
Re : comment changer le nom d'un commandbutton sous VB

bonjour


Quand je créé un commandbutton manuellement (Bo-Controles), je peux changer le nom en auto sans probleme par l'instruction "ActiveSheet.CommandButton1.Caption = "tutu""...
Mais quand je créé un command button en "auto" par l'instruction :
ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", Link:=False , DisplayAsIcon:=False, Left:=366, Top:=9.75, Width:=108, Height:=30).Select


Personnellement, j'utiliserais la solution de Lii pour modifier la propriété Caption de l'objet.


Mais si tu veux à tout prix faire référence à la feuille de calcul, procède ainsi :
(Dans ton exemple ActiveSheet fait référence à une feuille de calcul alors que tu dois utiliser son CodeName pour modifier la propriété d'un objet)

Code:
Dim Obj As OLEObject
Dim objFeuille As Object
 
Set Obj = ActiveSheet.OLEObjects.Add _
    (ClassType:="Forms.CommandButton.1", _
    Link:=False, DisplayAsIcon:=False, Left:=80, _
    Top:=10, Width:=100, Height:=30)
 
Obj.Name = "CommandButton1"
 
'
'...
'
 
Set objFeuille = ActiveSheet
objFeuille.CommandButton1.Caption = "tutu"


Comment faire référence à un contrôle dans une feuille de calcul ?



bon week end
michel
Microsoft Excel MVP
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 598
Membres
103 253
dernier inscrit
alscanv974