Bonjour à tous,
J'ai un gros problème que je n'arrive pas à résoudre : je cherche à ajouter du code dans une feuille à l'aide d'une macro. J'ai déjà fait fait cela pour une macro, ça ne pose aucun problème seulement je n'arrive pas à le faire pour une 2ème macro, je ne comprends pas pourquoi car le code est très ressemblant et les références chargées sont les mêmes. Pourriez-vous m'aider s'il vous plait?

Code qui fonctionne :
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
 
Sub AjoutFeuil()
Dim Feuil As Worksheet
Dim classeur As Workbook
Dim code As String
    Set classeur = ActiveWorkbook
    Set Feuil = Sheets.Add(After:=Sheets(Sheets.Count))
    ThisWorkbook.Sheets("Modèle").Cells.Copy
    Feuil.Paste Feuil.Cells(1, 1)
    Application.CutCopyMode = False
    code = "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbLf
    code = code & "Dim lig As Long" & vbLf
    code = code & "Dim col As Long" & vbLf
    code = code & "On Error GoTo fin" & vbLf
    code = code & "lig = Target.Row" & vbLf
    code = code & "col = Target.Column" & vbLf
    code = code & "If lig = 1 And col = 5 Then" & vbLf
    code = code & "Sheets(1).Select" & vbLf
    code = code & "End If" & vbLf
    code = code & "fin:" & vbLf
    code = code & "End Sub"
    Application.VBE.MainWindow.Visible = True
    classeur.VBProject.VBComponents.Item(Feuil.CodeName).CodeModule.AddFromString code
    Application.VBE.MainWindow.Visible = False
End Sub
Code qui ne fonctionne pas (erreur Excel avec redémarrage d'excel) :
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
 
Sub AccesFeuilVBA()
Dim code As String
Dim Feuil As Worksheet
Dim classeur As Workbook
Dim n As Integer
    Set classeur = ActiveWorkbook
    Application.VBE.MainWindow.Visible = True
    code = "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbLf
    code = code & "Dim lig As Long" & vbLf
    code = code & "Dim col As Long" & vbLf
    code = code & "On Error GoTo fin" & vbLf
    code = code & "lig = Target.Row" & vbLf
    code = code & "col = Target.Column" & vbLf
    code = code & "If lig >= 7 And col <= 7 Then" & vbLf
    code = code & "Sheets(Cells(lig,1) & "" - "" & Cells(lig,4)).Select" & vbLf
    code = code & "End If" & vbLf
    code = code & "fin:" & vbLf
    code = code & "End Sub"
    Set Feuil = Sheets(1)
    classeur.VBProject.VBComponents.Item(Feuil.CodeName).CodeModule.AddFromString code
    code = "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" & vbLf
    code = code & "Dim lig As Long" & vbLf
    code = code & "Dim col As Long" & vbLf
    code = code & "On Error GoTo fin" & vbLf
    code = code & "lig = Target.Row" & vbLf
    code = code & "col = Target.Column" & vbLf
    code = code & "If lig = 1 And col = 6 Then" & vbLf
    code = code & "Sheets(1).Select" & vbLf
    code = code & "End If" & vbLf
    code = code & "fin:" & vbLf
    code = code & "End Sub"
    For n = 2 To classeur.Sheets.Count
        Set Feuil = Sheets(n)
        classeur.VBProject.VBComponents.Item(Feuil.CodeName).CodeModule.AddFromString code
    Next
    Application.VBE.MainWindow.Visible = False
End Sub