Chers tous,

J'utilise le code définit par SilkyRoad pour créer un ToggleButton (http://excel.developpez.com/faq/?pag...tCommandButton) dans une feuille existante après de nombreux tests, j'ai toujours des problèmes insolubles à mon niveau. Le code initial fonctionne parfaitement, dès que j'adapte le code, il me renvoie l'erreur suivante : "erreur d'exécution 9 , L'indice n'appartient pas à la sélection" la ligne concernée est

Code : Sélectionner tout - Visualiser dans une fenêtre à part
With ThisWorkbook.VBProject.VBComponents(Calc.Name).CodeModule
Voici le bout de code dans son intégralité

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
27
28
29
30
31
32
33
34
35
36
37
Sub AjoutCommandButton_Feuille()
    Dim Calc As Worksheet
    Dim Obj As OLEObject
    Dim Code As String
    Dim x As Integer
 
    Set Calc = ThisWorkbook.Worksheets("Calculs")
    x = 1
    Set Obj = Calc.OLEObjects.Add("Forms.ToggleButton.1")
 
        With Obj
            .Left = Calc.Cells(x, 1).Left
            .Top = Calc.Cells(x, 1).Top
            .Width = Calc.Cells(x, 1).Width
            .Height = Calc.Cells(x, 1).Height
            .Object.BackColor = RGB(0, 255, 0)
            .Object.Caption = ""
            .Object.Value = True
        End With
 
 
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    Code = "Sub Obj_Click()" & vbCrLf
    Code = Code & "If Obj.Value = True Then" & vbCrLf
    Code = Code & "Obj.BackColor = RGB(0, 255, 0)" & vbCrLf
    Code = Code & "Else" & vbCrLf
    Code = Code & "Obj.BackColor = RGB(255, 0, 0)" & vbCrLf
    Code = Code & "End If" & vbCrLf
    Code = Code & "End Sub"
 
 
    With ThisWorkbook.VBProject.VBComponents(Calc.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, Code
    End With
End Sub
Merci d'avance de votre aide