Bonjour à tous,

Petit soucis mais gros casse tête pour moi

A l'ouverture de mon classeur j'utilise le code suivant pour créer un bouton sur une feuille de calcul avec son code associé. Ça fonctionne comme souhaité

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
Private Sub Workbook_Open()
 
Dim leBouton As OLEObject
Dim code As String
Dim ligneSuivante
 
Set leBouton = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1")
    With leBouton
        .Name = "BoutonCommande"
        .Left = 460
        .Top = 112.5
        .Width = 100
        .Height = 25
        .Object.Caption = "Année : " & Year(Date) + 1
    End With
 
code = "Private Sub BoutonCommande_Click" & vbCrLf
code = code & "sc" & vbCrLf
code = code & "End Sub" & vbCrLf
 
    With ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule
        ligneSuivante = .CountOfLines + 1
        .insertlines ligneSuivante, code
    End With
 
End Sub
A la fermeture du classeur j'utilise le code suivant pour détruire ce bouton ainsi que son code. Ça fonctionne mais à chaque fois j'ai une boîte de dialogue me disant
"Erreur d'exécution '424' Objet requis"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
    With ActiveWorkbook.VBProject.VBComponents(Sheets("2013").CodeName).CodeModule
      .DeleteLines 1, .CountOfLines
    End With
 
[BoutonCommande].Delete
 ActiveWorkbook.Close SaveChanges:=True
 
End Sub
Je ne comprends pas car le bouton et le code sont bien supprimés, tout fonctionne comme je le souhaite hormis cette boîte de dialogue.

Si vous pouviez m'indiquer une voie de recherche

Merci

JP