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