Création automatique d'un bouton + association de code VBA
Bonjour,
Comme indiqué dans le titre, je cherche à réaliser une macro qui me permettrait de créer un bouton dans un autre classeur excel, à une place déterminée (vers la cellule B500) et de lui attribuer du code VBA (très simple, il s'agirait juste de UserForm1.Show, sachant que l'userform a déjà été exportée vers le fichier cible).
J'ai tenté le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Dim Classeur As Workbook
Dim oOLE As OLEObject
Dim X As Byte
Dim Code$
'On crée le code associé
Code = "Sub CommandButton1_Click()" & vbCrLf
Code = Code & "MsgBox ""Coucou XLD""" & vbCrLf
Code = Code & "End Sub"
Set Classeur = Workbooks("Echelles " & v & " " & m & " " & a) 'à adapter, ou workbooks.add si on crée le fichier
With Classeur
With .Worksheets("NOSTRI_" & v)
X = .OLEObjects.Count
Set oOLE = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False, Left:=30.75, Top:=6423.75, Width:=132, Height:=48.75)
End With
With oOLE
.Name = "CommandButton" & X + 1
.Object.Caption = "Echelles KO"
End With
With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
.InsertLines .CreateEventProc("Click", "Commandbutton" & X + 1) + 1, Code
End With
End With |
Mais le problème est qu'au niveau de "ActiveWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
.InsertLines .CreateEventProc("Click", "Commandbutton" & X + 1) + 1, Code" (vers les dernières lignes), Excel me dit que mon "subscript is out of range".
Or je ne vois pas ce qui pèche, puisque l'emplacement cible est indiqué (selon moi).
Pourriez vous m'indiquer ce qui pose problème?
Merci par avance de l'aide que vous pourriez m'apporter.