Insérer du code dans une procédure existante via VBA
2 réponses
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 ...)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(1)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(2)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ...)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines i + 1, Code(1) ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines i + 1, Code(2)
End Sub
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 ...)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(1)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines
i + 1, Code(2)
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 ...)
ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines i + 1, Code(1) ActiveWorkbook.VBProject.VBComponent("ThisWorkbook").CodeModule.InsertLines i + 1, Code(2)
End Sub
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 > > .
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
>
>
.
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 > > .