Bonjour le fil et le Forum,
Comme ton module resize contient maintenant 16 procédures (resize1 à resize16), tu ne peux plus manipuler le module entier comme avant. L’objet CodeModule de VBA ne travaille pas directement sur les procédures, mais il te donne des méthodes pour cibler une Sub précise :
ProcStartLine : te donne la ligne de début d’une procédure.
ProcCountLines : indique combien de lignes appartiennent à cette procédure.
Lines : permet de lire le texte du code entre deux lignes.
Avec ça, tu peux isoler et modifier uniquement la Sub qui t’intéresse, sans toucher aux autres.
Sub LireUneProcedure()
Dim cm As Object
Dim ligneDebut As Long, nbLignes As Long
Dim codeProc As String
Const vbext_pk_Proc = 0
' On pointe vers le module "resize" (qui contient resize1 à resize16)
Set cm = ThisWorkbook.VBProject.VBComponents("resize").CodeModule
' Exemple : lecture de la procédure "resize1"
' ProcStartLine renvoie la ligne de début de la Sub
ligneDebut = cm.ProcStartLine("resize1", vbext_pk_Proc)
' ProcCountLines renvoie le nombre total de lignes de la Sub
nbLignes = cm.ProcCountLines("resize1", vbext_pk_Proc)
' On récupère le code de la Sub complète
codeProc = cm.Lines(ligneDebut, nbLignes)
' Affichage du code dans une boîte de dialogue (à titre d’exemple)
MsgBox codeProc
End Sub