Accès à une partie du code d'un module en VBA

Bonjour à tous, afin de permettre à mes utilisateurs de modifier simplement du code, j'ai créé une forms permettant d'éditer celui-ci

le code utilisé est le suivant :

With ThisWorkbook.VBProject.VBComponents("resize1").codemodule
    If .CountOfLines > 0 Then
        CodeActuel = .Lines(1, .CountOfLines)
    End If
    End With

j'ai 16 redimentionnement différents (Module resize1 à 16) et par souci de clarté du code j'ai créé un module resize global dans lequel j'ai mis 16 public sub (Resize 1 à 16)

malheureusement depuis, le code cité accédant à un module, je ne parviens plus à modifier uniquement le code de la public sub resize1 qui appartient au module resize global

Auriez vous une idée de la façon dont je dois procéder, je ne trouve pas d'équivalent à .codemodule qui me permette d'accéder aux public sub d'un module

merci d'avance

bonne journée à tous

Bonjour,

"afin de permettre à mes utilisateurs de modifier simplement du code, j'ai créé une forms permettant d'éditer celui-ci"

Non mais sérieux

Quelle utilité à ça ?

Bonjour,

Peut être de vous faire réagir :)

non plus sérieusement la partie de code concernée concerne une mise en forme de rapport et l'idée est de rendre le programme perrerin s'ils veulent modifier les rapports type, personne n'est éternel et mes collègues n'on pas de notions de codage

bonne journée

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

Top, merci beaucoup pour cette réponse très rapide,

je vais étudier cela

bonne fin de journée

Re,

non plus sérieusement la partie de code concernée concerne une mise en forme de rapport et l'idée est de rendre le programme perrerin s'ils veulent modifier les rapports type, personne n'est éternel et mes collègues n'on pas de notions de codage

Pour que ce soit perrin, à mes yeux et pas que les miens, ce n'est pas la bonne solution

La bonne solution est d'avoir un onglet servant de matrice avec des plages nommées, ainsi, vous travaillez toujours sur les mêmes "zones"

De plus vous être contradictoire, car vous précisez que vos collègues n'ont pas de notion de codage, alors qu'ils doivent mettre les mains de le cambouis

Je ne sais pas ou vous travaillez, mais attendez que la politique de la DSI niveau sécurité change... et là

Bref, bonne chance

Rechercher des sujets similaires à "acces partie code module vba"