Bonjour à tous,
Je vous soumet un problème sur lequel je me casse les dents depuis 2 jours.
Comment inserer dynamiquement plus de 1 bouton et bien sur le "sub" qui va bien avec.

Un bouton et un module : pas de problème cela fonctionne très bien.
Mais dès lors que le numéro du "CommandButton" est différent de 1 cela ne fonctionne plus et je ne suis pas parvenu à ajouter un 2ème sub.

Exemple de code qui fonctionne très bien (tiré des FAQ du site) s'il n'y aqu'un seul sub et qui génére une erreur fatal d'excel si l'on veut ajouter un 2ème module.

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Sub AjoutCommandButton_Feuille()
    Dim Ws As Worksheet
    Dim Obj As OLEObject
    Dim laMacro As String
    Dim x As Integer
 
    'Ajout feuille
    Set Ws = Sheets.Add
 
 
    '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 = "Supprimer données feuille"
    End With
 
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    laMacro = "Sub CommandButton1_Click()" & vbCrLf
    laMacro = laMacro & "Cells.Clear" & vbCrLf
    laMacro = laMacro & "End Sub"
 
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With
 
    Set Obj = Ws.OLEObjects.Add("Forms.CommandButton.1")
    With Obj
        .Left = 50 'position horizontale
        .Top = 350 'position verticale
        .Width = 140 'largeur
        .Height = 30 'hauteur
        .Object.BackColor = RGB(235, 235, 200) 'Couleur de fond
        .Object.Caption = "Ajouter données feuille"
    End With
 
    'Paramètres pour la création de la macro:
    '(suppression contenu cellules)
    laMacro = "Sub CommandButton2_Click()" & vbCrLf
    laMacro = laMacro & "Cells.Clear" & vbCrLf
    laMacro = laMacro & "End Sub"
 
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
        x = .CountOfLines + 1
        .InsertLines x, laMacro
    End With
End Sub
Merci à vous tous de m'indiquer des pistes de recherches.