Bonjour à tous,

Je souhaiterais avoir quelques conseils sur un problème :
En réponse à un événement quelconque, par exemple un clic bouton, je veux créér N boutons ("Bouton1" ... "BoutonN") et leur associer N macros ("Bouton1_click" ... "BoutonN_click")

Sur ma feuille excel, existent deux boutons, le premier déclenche la macro Evenement_click et le second Bouton0, est un CommandButton.
L'idée est de recopier ce Bouton0 existant, de changer son nom et de créer sa macro associée dans le code.

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
 
Sub Evenement_click()
    Dim WbClasseur As Workbook
    'Marqueur d'affichage
    Dim IntLigneCourante As Integer
    '--------------------------------------------------
    IntLigneCourante = 10
    N = 2 
    Set WbClasseur = Workbooks("Classeur.xls")
    For i = 1 To N
        '****** BLOC1 ******
        'Gestion des boutons
        Worksheets("Sheet1").Shapes("Bouton0").Select
        Selection.Copy
        Worksheets("Sheet1").Range("F" & IntLigneCourante).Select
        Worksheets("Sheet1").Paste
        Selection.Name = "Bouton" & i
        Worksheets("Sheet1").Range("F18").Select
        IntLigneCourante = IntLigneCourante + 1
        '******************
        '****** BLOC2 ******
        'Gestion des macros associées
        With WbClasseur.VBProject.VBComponents("Feuil1").CodeModule
            x = .CountOfLines
            .InsertLines x + 1, "Sub Bouton" & i & "_Click()"
            .InsertLines x + 2, " "
            .InsertLines x + 3, "End Sub"
        End With
        '******************
    Next i
End Sub
Les blocs BLOC1 et BLOC2 fonctionnent parfaitement indépendemment l'un de l'autre, mais dès qu'ils sont activés ensemble, excel plante sans message d'erreur. J'avoue avoir du mal à comprendre la logique.

Par avance, merci de votre aide.

Vorillyan