Ce code permet de lister tous les modules et les procédures de chaque module (VBA)
Source / Exemple :
Option Compare Database
Option Explicit
'Déclarations
Public Mdule As module
Public LigneDec As Long
Public LigneCount As Long
Public Proc As String
Public ProcNbre As Integer
Public Type SBProcedures
Nom As String
End Type
Public Type SBModules
Nom As String
SBProcedure() As SBProcedures
End Type
Public Type SBCodes
SBModule() As SBModules
End Type
Public SBCode As SBCodes
Sub AnalyseCode()
ReDim SBCode.SBModule(Application.Modules.Count)
'Liste les modules
For i = 0 To Application.Modules.Count - 1
Debug.Print Application.Modules(i).Name
SBCode.SBModule(i).Nom = Application.Modules(i).Name
Next i
'Parcoure les modules
For i = 0 To UBound(SBCode.SBModule) - 1
DoCmd.OpenModule SBCode.SBModule(i).Nom
Set Mdule = Modules(SBCode.SBModule(i).Nom)
LigneCount = Mdule.CountOfLines
LigneDec = Mdule.CountOfDeclarationLines
ProcNbre = 0
ReDim Preserve SBCode.SBModule(i).SBProcedure(ProcNbre)
Proc = Mdule.ProcOfLine(LigneDec + 1, vbext_pk_Proc)
SBCode.SBModule(i).SBProcedure(ProcNbre).Nom = Proc
'Liste les procédures
For j = LigneDec + 1 To LigneCount
If Proc <> Mdule.ProcOfLine(j, vbext_pk_Proc) Then
ProcNbre = ProcNbre + 1
Proc = Mdule.ProcOfLine(j, vbext_pk_Proc)
ReDim Preserve SBCode.SBModule(i).SBProcedure(ProcNbre)
SBCode.SBModule(i).SBProcedure(ProcNbre).Nom = Proc
End If
Next j
Next i
'Affiche les procédures dans la fenêtre debug
For i = 0 To UBound(SBCode.SBModule) - 1
For j = 0 To UBound(SBCode.SBModule(i).SBProcedure) - 1
Debug.Print SBCode.SBModule(i).Nom + " : " + SBCode.SBModule(i).SBProcedure(j).Nom
Next j
Next i
End Sub
Conclusion :
Ce code me sert dans Access, je suppose qu'il est transposable dans d'autres applications Office utilisant le VBA et les modules
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.