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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #20361621
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




Chacalou13
Le #20383861
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
>
>
.



Publicité
Poster une réponse
Anonyme