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
Voici le bout de code dans son intégralité
Code : Sélectionner tout - Visualiser dans une fenêtre à part With ThisWorkbook.VBProject.VBComponents(Calc.Name).CodeModule
Merci d'avance de votre aide
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
Partager