[Catégorie encore et encore modifiée .Net --> VBA] créer un bouton "Calculer" af

kikinou765 Messages postés 22 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 7 juillet 2010 - 7 juil. 2010 à 08:36
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 7 juil. 2010 à 09:48
Bonjour,

je souhaite créer un bouton avec une macro directement affectée dessus. J'ai le code suivant mais il ne fonctionne pas :


Sub CreerBouton()

Dim Obj As Object
Dim Code As String

Sheets("Nom_de_ma_Feuille").Select

'crée le bouton
Set Obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Link:=False, DisplayAsIcon:=False, Left:=400, Top:=50, Width:=100, Height:=35)
Obj.Name = "BoutonTest"
'texte du bouton
ActiveSheet.OLEObjects(1).Object.Caption = "Calculer"

'Le texte de la macro
Code = "Sub BoutonTest_Click()" & vbCrLf
Code = Code & "Call Module1.Multiplication_fretroutier_cas1" & vbCrLf
Code = Code & "End Sub"
'Ajoute la macro en fin de module feuille

With ActiveSheet.CodeModule
.insertlines .CountOfLines + 1, Code
End With
End Sub

Quelqu'un peut-il m'aider?/b

2 réponses

kikinou765 Messages postés 22 Date d'inscription jeudi 1 juillet 2010 Statut Membre Dernière intervention 7 juillet 2010
7 juil. 2010 à 09:34
en fait j'ai le message '9' l'indice n'appartient pas à la sélection
je pense que le problème vient du fait que dans un premier temps je supprime toutes les feuilles au démarrage et que j'en créer de nouvelles et que dans une des nouvelles j'affecte la création de bouton calculer avec la macro. je pense que l'erreur vient de la mais je ne sais pas comment le résoudre.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juil. 2010 à 09:48
Salut

Quand comprendras-tu que tu fais du VBA et pas du .Net ?

Si tu as une erreur 9, dis nous sur quelle ligne.

Si c'est sur la ligne
Sheets("Nom_de_ma_Feuille").Select
vérifie que cette feuille existe bien.

Pourquoi cette syntaxe :
ActiveSheet.OLEObjects(1).Object.Caption = "Calculer"
Ceci aurait suffit
Obj.Caption = "Calculer"

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous