Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Insérer du code dans une procédure existante via VBA

2 réponses
Avatar
Chacalou13
Bonjour,

Je cherche, via VBA, à insérérer du code dans une procédure déjà existante.
cette procédure fonctionne bien si on veut créer une nouvelle procédure (il
faudrait ajouter Sub toto et End Suc dans le tableau Code)
Mais par contre, je voudrais lui dire d'aller écrire ce code dans
ThisWorkbook (ça c'est ok), dans la procédure Workbook_open (et c'est là que
je bloque ...)

Merci par avance pour votre aide.

Sub AddCodeModuleVBA()

Code = Array( _
"Sheets(""Page7a - NRCs Synthesis"").EnableOutlining = True", _
"Sheets(""Page7a - NRCs Synthesis"").Protect Password:=""Choc08"",
userInterfaceOnly:=True")

ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(1)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(2)

End Sub

2 réponses

Avatar
isabelle
bonjour Chacalou,

Sub CopiDeCode()
Code1 = "Sheets(""Page7a - NRCs Synthesis"").EnableOutlining = True"
Code2 = "Sheets(""Page7a - NRCs Synthesis"").Protect
Password:=""Choc08"",userInterfaceOnly:=True"
Set MyVB = ThisWorkbook.VBProject.VBComponents("ThisWorkBook").CodeModule
For i = 1 To MyVB.countoflines
If MyVB.Lines(i, 1) = "Private Sub Workbook_Open()" Then
MyVB.InsertLines i + 1, Code1
MyVB.InsertLines i + 2, Code2
Exit Sub
End If
Next
End Sub

isabelle

Chacalou13 a écrit :
Bonjour,

Je cherche, via VBA, à insérérer du code dans une procédure déjà existante.
cette procédure fonctionne bien si on veut créer une nouvelle procédure (il
faudrait ajouter Sub toto et End Suc dans le tableau Code)
Mais par contre, je voudrais lui dire d'aller écrire ce code dans
ThisWorkbook (ça c'est ok), dans la procédure Workbook_open (et c'est là que
je bloque ...)

Merci par avance pour votre aide.

Sub AddCodeModuleVBA()

Code = Array( _
"Sheets(""Page7a - NRCs Synthesis"").EnableOutlining = True", _
"Sheets(""Page7a - NRCs Synthesis"").Protect Password:=""Choc08"",
userInterfaceOnly:=True")

ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(1)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(2)

End Sub




Avatar
Chacalou13
Bonjour Isabelle,

Merci beaucoup.
Ce n'était pas ce à quoi je pensais mais finalement il faut savoir
contourner les obstacles et cela fonctionne effectivement.

Bonne journée.

"isabelle" a écrit :

bonjour Chacalou,

Sub CopiDeCode()
Code1 = "Sheets(""Page7a - NRCs Synthesis"").EnableOutlining = True"
Code2 = "Sheets(""Page7a - NRCs Synthesis"").Protect
Password:=""Choc08"",userInterfaceOnly:=True"
Set MyVB = ThisWorkbook.VBProject.VBComponents("ThisWorkBook").CodeModule
For i = 1 To MyVB.countoflines
If MyVB.Lines(i, 1) = "Private Sub Workbook_Open()" Then
MyVB.InsertLines i + 1, Code1
MyVB.InsertLines i + 2, Code2
Exit Sub
End If
Next
End Sub

isabelle

Chacalou13 a écrit :
> Bonjour,
>
> Je cherche, via VBA, à insérérer du code dans une procédure déjà existante.
> cette procédure fonctionne bien si on veut créer une nouvelle procédure (il
> faudrait ajouter Sub toto et End Suc dans le tableau Code)
> Mais par contre, je voudrais lui dire d'aller écrire ce code dans
> ThisWorkbook (ça c'est ok), dans la procédure Workbook_open (et c'est là que
> je bloque ...)
>
> Merci par avance pour votre aide.
>
> Sub AddCodeModuleVBA()
>
> Code = Array( _
> "Sheets(""Page7a - NRCs Synthesis"").EnableOutlining = True", _
> "Sheets(""Page7a - NRCs Synthesis"").Protect Password:=""Choc08"",
> userInterfaceOnly:=True")
>
> ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
> i + 1, Code(1)
> ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
> i + 1, Code(2)
>
> End Sub
>
>
.