Problème VBEditor lors de l'ajout de code par macro
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:
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:
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 |