1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| Sub ListerToutesMacros()
'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
Dim I As Integer
Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual
'Indiquez le nom du classeur ouvert
Set Wb = ActiveWorkbook 'à adapter
'Boucle sur tous les composantsdu projet :
'Modules standards
'Modules de feuilles et de classeur
'Modules de classe
'UserForms
If Not Range("Tableau2").ListObject.DataBodyRange Is Nothing Then Range("Tableau2").ListObject.DataBodyRange.Delete
I = 2
For Each VBCmp In Wb.VBProject.VBComponents
Set cdMod = VBCmp.CodeModule
With cdMod
Debut = .CountOfDeclarationLines + 1
Do Until Debut >= .CountOfLines
'Nom de la procédure et du module
Cells(I, 1) = VBCmp.Name
Cells(I, 2) = .ProcOfLine(Debut, vbext_pk_Proc)
Debut = Debut + .ProcCountLines(.ProcOfLine(Debut, vbext_pk_Proc), vbext_pk_Proc)
I = I + 1
Loop
End With
Next VBCmp
'Range("ListeModulesProc").Sort Key1:=Range("ListeModulesProc[Nom module]"), Header:=xlYes, Order1:=xlAscending
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
End Sub |