Bonjour,
Malgré les explications déjà faites sur ce forum, notamment dans ces discussions :
https://forum.excel-pratique.com/viewtopic.php?t=53841
https://forum.excel-pratique.com/viewtopic.php?f=2&t=132483
Je ne parviens pas à faire fonctionner ce code :
où nm et prn = des string ; si nm = "Ti"et prn = "ta" alors le nom de la feuille est "ti_ta"
Sub CreateWsEvenMacro()
Dim a As Integer, b As Integer
'ActiveWorkbook.VBProject.VBComponents.Count
With ActiveWorkbook(nm & "_" & prn).codeModule
a = .countOfLines
.insertLines a + 1, "Private Sub Worksheet_activate()"
.insertLines a + 2, "Call Decharge_Usf"
.insertLines a + 3, "Bandeau_actions.Show 0"
.insertLines a + 4, "End Sub"
End With
End Sub
Je n'ai pas d'erreur, il ne se passe juste rien car je pense qu'Excel ne trouve pas ce que je cherche.
Le problème vient d'ici :
ActiveWorkbook(nm & "_" & prn).codeModule
Que j'ai également essayé d'écrire :
ActiveWorkbook.VBProject.VBComponents(nm & "_" & prn).codeModule
Ou bien
ActiveWorkbook.VBProject.(nm & "_" & prn).codeModule
Savez-vous ce que je dois écrire pour qu'Excel trouve, dans le document, le nom de la feuille recherchée ?
Cela ne fonctionne pas non plus si je demande à ce qu'Excel génère une feuille toujours nommée "Feuil1", sur laquelle je lancerais la macro ci-après, que je renommerais après.
Mon document est tout imbriqué, alors pour extraire la partie du code qui m'intéresse et proposer un document pour l'exemple ça va me prendre un peu de temps, je vous le transmets dès que possible !
Merci de votre attention !
Bonne soirée