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 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 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 : 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
Partager