Ajout de bouton par VBA et associer une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dionys0s

XLDnaute Impliqué
(Re)bonjour le forum

Je cherche à créer un bouton par VBA et à associer du code automatiquement.
Je suis donc allé sur l'excellent tuto de SylkyRoad et j'ai (presque) trouvé mon bonheur.

Le code est le suivant :

Code:
Sub AjoutCommandButton_Feuille()
    Dim Ws As Worksheet
    Dim Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
    
    'Ajout feuille
    Set Ws = Sheets.Add
        
    'Ajout CommandButton dans la feuille
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Left = 50 'position horizontale
        .Top = 50 'position verticale
        .Width = 140 'largeur
        .Height = 30 'hauteur
        .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
        .Object.Caption = "Supprimer données feuille"
    End With
    
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    laMacro = "Sub CommandButton1_Click()" & vbCrLf
    laMacro = laMacro & "Cells.Clear" & vbCrLf
    laMacro = laMacro & "End Sub"
    
    [B][SIZE="3"]With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With[/SIZE][/B]
End Sub

J'ai compris comment adapter le code pour la création de bouton et de la macro, et tout va bien jusqu'à la première ligne du code jusqu'à la ligne en gras taille 3... J'ai le message suivant :
Erreur d'exécution de type '9':
L'indice n'appartient pas à la sélection.
Et la ligne "With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule" apparait sur fond jaune.
Je ne comprends pas trop ce que je dois modifier pour que ça fonctionne. Je n'ai pas trouvé de référence à activer mentionnée par SilkyRoad dans son tuto, j'ai essayé en mettant le nom exact de l'onglet à la place de ActiveSheet.Name, rien n'y fait...

C'est grave docteur ?

D'avance merci pour votre aide 🙂
 
Re : Ajout de bouton par VBA et associer une macro

Hello tous,
sur Excel 2010
Je reviens là-dessus essayant moi aussi de lier un checkbox (ActiveX) à une macro, mais petit problème. N'étant pas un master of VB, je fais appel aux lumières des masters présents.
je mets un checkbox sur une ligne nouvellement créée qui change le fond de cases sélectionnées.
Pas de pb pour créer le checkbox où je veux sur un changement de contenu de cellule . Pas de pb pour que la macro fasse ce que je veux sur un bouton créer individuellement, mais quand je fait une création multiple, je n'arrive pas à raccrocher la macro à ces checkbox.

J'ai suivi bêtement le code trouvé (merci Silkyroad) mais j'arrive pas à l'adapter.
Je tombe sur une erreur " L'accès par programme au projet Visual Basic n'est pas fiable" 😕

si y'en a des qui me permettrait de passer de l'interrogation à la compréhension.
Merci
 

Pièces jointes

Re : Ajout de bouton par VBA et associer une macro

Bonjour,

pour cette erreur :
Je tombe sur une erreur " L'accès par programme au projet Visual Basic n'est pas fiable"

sous 2003 => barre de menu => outils => macro => sécurité => onglet "éditeurs approuvés => cocher l'option "faire confiance au projet visual basic".

sous 2010 => fichier => options => centre de gestion de la confidentialité => paramètres du centre.... paramètres des macros => cocher "accès approuvé au modèle d'objet du projet vba" ...

bonne soirée
@+
 
Re : Ajout de bouton par VBA et associer une macro

Re-hello
En fait, quand je clique sur mon nouveau checkbox, ça ne prend pas la macro que je veux (CheckBox1_click()), mais ça m'en crée automatiquement une autre avec le même nom mais vide et sans End sub 😕
merci
 
Re : Ajout de bouton par VBA et associer une macro

Re,

et pourquoi créer dynamiquement les contrôles... pas des plus simples quand on débute.... pour le code préférable de passer par un module de classe, ton code sera figé, restera à initialiser la classe aprés la création du "checkbox".... tu trouveras des exemples en ce sens sur le forum....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
799
Réponses
1
Affichages
520
Réponses
0
Affichages
459
Retour