Bonjour,

Je ne comprends pas, je n'arrive pas à faire fonctionner ce code qui doit
être lancé sur clique bouton.
J'ai le message sur la ligne 29
l'indice n'appartient pas à la sélection.
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
Dim Ws As Worksheet
    Dim Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
 
    'Ajout feuille
      Sheets.Add After:=Sheets("Bon de Commande")
      Set Ws = ActiveSheet
      Debug.Print "Feuille en cours etape 1" & Ws.Name
    'Ajout CommandButton dans la feuille
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Left = 50 'position horizontale
        .Top = 50 'position verticale
        .Width = 140 'largeur
        .Height = 30 'hauteur
        .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
        .Object.Caption = "Action"
    End With
 
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    laMacro = "Sub CommandButton1_Click()" & vbCrLf
    laMacro = laMacro & "Msgbox Ok" & vbCrLf
    laMacro = laMacro & "End Sub"
 
    'ActiveSheet.Name = "Fiche Tarifaire Valideur"
    Debug.Print "Feuille en cours etape 2" & Ws.Name
    With ActiveWorkbook.VBProject.VBComponents(Ws.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With
 
   ' ActiveSheet.Name = "Fiche Tarifaire Valideur"
 
End Sub
Bizarrement il m'ajoute des nouvelles feuilles comme demandé mais dont le nom est Feuil33 alors que j'ai supprimé des feuilles précédentes. ( Feuil31,Feuil32)

Merci d'avance de vos idées ?