Recup des noms des modules et des sub dans des fichiers

Bonsoir a tous

il y a quelques temps j'avais trouvé un post contenant un code qui permettrait de lister les modules et les différentes function/sub dans un fichier.

cela fait une heure que j'essaye de retrouver ce post sans succès... (je ne sais même plus si c'était sur ce forum....)

je commence a avoir un certain nombre de fichier contenant des macros et je voudrais faire un fichier listing qui me liste les sub et functions de mes fichiers car je re-utilise un certain nombre de function et je passe un temps fou a savoir dans quel fichier j'ai bien pu faire cela!......

si vous avez une idée...

merci

Fred

Bonjour,

Pour la macro je ne sais pas, mais il me semble qu'il existe de petits logiciels permettant de classer par bibliothèques ses macros.

Perso j'utilise des petits fichiers rangés dans des dossiers

Bonsoir

un petit nom de logiciel peut être ??

Merci

fred

bon bah c'est en cherchant qu'on trouve je crois....

alors j'ai retrouvé le post en question

https://forum.excel-pratique.com/excel/vba-lister-les-macros-sur-une-feuille-t7822.html

qui date de 2008 quand même ....

j'ai quand même apporter quelques modif pour mettre cela dans un fichier excel

la prochaine modif sera de lister le contenu de tous les fichiers se trouvant d'un dossier

Bonne soirée

Fred

Sub liste_macro()

'Nécessite d'activer la référence
    'Microsoft "Visual basic For Application Extensibility 5.3"
Dim Ajout As Integer
Dim VBCmp As VBComponent
Dim cdMod As CodeModule
Dim Wb As Workbook
Dim Debut As Long

'Indiquez le nom du classeur ouvert
'Set Wb = ThisWorkbook
Set Wb = Workbooks("compilateurV3.xlsm")
Ajout = 1

'Boucle sur tous les composants du projet :
    'Modules standards
    'Modules de feuilles et de classeur
    'Modules de classe
    'UserForms
For Each VBCmp In Wb.VBProject.VBComponents
    Set cdMod = VBCmp.CodeModule
    With cdMod
        Debut = .CountOfDeclarationLines + 1
        Do Until Debut >= .CountOfLines
        If Debut = 1 Then Range("A" & Range("A65536").End(xlUp).Row + 1) = cdMod

            'Nom de la procédure
            Debug.Print .Lines(.ProcBodyLine(.ProcOfLine(Debut, vbext_pk_Proc), vbext_pk_Proc), 1)
            'Debug.Print .ProcOfLine(Debut, vbext_pk_Proc)
            Range("A" & Range("A65536").End(xlUp).Row + 1) = .Lines(.ProcBodyLine(.ProcOfLine(Debut, vbext_pk_Proc), vbext_pk_Proc), 1)
'            Range("A" & Range("A65536").End(xlUp).Row + 1) = .ProcOfLine(Debut, vbext_pk_Proc)

            Debut = Debut + _
                .ProcCountLines(.ProcOfLine(Debut, _
                vbext_pk_Proc), vbext_pk_Proc)
            Ajout = Ajout + 1
        Loop
    End With

Next VBCmp
End Sub

Bonsoir,

un exemple ici

bonjour

merci je regarderais cela d'ici la fin de semaine

Fred

Bonsoir à toutes et tous

Je viens d'installer cette macro. Elle fonctionne à merveille mais....... je suis incapable de trouver la liste qui vient d'être établie.

Je suis sur Excel 2007.

A l'avance merci

Bonsoir

a priori dans le fichier qui a exécute la macro...

Fred

Je confirme dans le fichier actif et feuille active au moment de l’exécution de la macro... mais il faut au préalable modifier le code pour pointer sur le bon fichier à traiter : donc cette ligne :

Set Wb = Workbooks("compilateurV3.xlsm")

et il faut que le fichier soit ouvert...

Fred

Rechercher des sujets similaires à "recup noms modules sub fichiers"