Sub Princ()
Dim Ch$
If SupprBouton(Sheets(1), 'Bt1') = 0 Then
SuprrUneProc ThisWorkbook, Sheets(1).CodeName, 'Bt1_Click'
End If
Ch = 'MsgBox ''Salut XLD''' 'le code à mettre dans la procédure qu'éxécutera le bouton
AjouterUnBouton Sheets(1), 'Bt1', Array(30, 4, 100, 20, 'Mon Bouton') 'ici dans la feuille 1 le bouton s'appelle mon bouton
AjouterProcEven ThisWorkbook, Sheets(1).CodeName, 'Click', 'Bt1', Ch
End Sub
Sub AjouterUnBouton(F As Worksheet, Optional Nom$, Optional T)
Dim B As OLEObject
Set B = F.OLEObjects.Add('Forms.commandbutton.1')
With B
.Name = Nom
.Left = T(0)
.Top = T(1)
.Width = T(2)
.Height = T(3)
.Object.Caption = T(4)
End With
End Sub
Sub AjouterProcEven(C As Workbook, NomModule$, Evenement$, Objet$, Code$)
With C.VBProject.VBComponents(NomModule).CodeModule
.InsertLines .CreateEventProc(Evenement, Objet) + 1, Code
End With
End Sub
Function SupprBouton&(F As Worksheet, Nom$)
On Error Resume Next
F.OLEObjects(Nom).Delete
SupprBouton = Err
End Function
Sub SuprrUneProc(C As Workbook, NomModule$, NomProc$)
With C.VBProject.VBComponents(NomModule).CodeModule
.DeleteLines .ProcStartLine(NomProc, 0), .ProcCountLines(NomProc, 0)
End With
End Sub