Bonjour,

Je construis un classeur dynamiquement à partir d'un autre qui contient les macros de construction.
J'ajoute des feuilles dans une boucle selon le nombre saisi par l'utilisateur.
Suivant le paramétrage demandé, j'ai 3 cas de figures :
  1. Ajout d'une feuille par copie d'un modèle comportant du code.
  2. Ajout d'une feuille sans modèle mais dans laquelle j'ajoute des boutons puis leur code
  3. Ajout d'une feuille sans modèle, "brute"

A la fin de la création de chaque feuille, j'ajoute systématiquement une procédure Worksheet_Change :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
sCode = "Private Sub Worksheet_Change(ByVal target As Range)" & vbCrLf ../.../.. & "End Sub"
With wbk.VBProject.VBComponents(wks.CodeName).CodeModule
    sNextLine = .CountOfLines + 1
    .insertlines sNextLine, sCode
End With
Avec wbk déclaré en workbook = le nouveau classeur, et wks déclaré en worksheet, la feuille créée.
Ce code fonctionne pour les cas 1 et 2, mais par pour le cas 3.
Dans ce cas, j'ai un message "Erreur d'execution 9, l'indice n'appartient pas à la selection" à l'instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
With wbk.VBProject.VBComponents(wks.CodeName).CodeModule
Le wks.CodeName me ramène bien le nom "système" (Feuiln) de la feuille créée.
Est que cela veut dire que le module de code n'est pas systématiquement créé avec la feuille, et si oui, que puis-je ajouter comme test pour savoir si le module de code de la feuille existe ?

Merci de votre aide.