begin process at 2012 02 17 02:09:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Modules

 > LISTER TOUS LES MODULES ET LES PROCÉDURES DE CHAQUE MODULE (VBA)

LISTER TOUS LES MODULES ET LES PROCÉDURES DE CHAQUE MODULE (VBA)


 Information sur la source

 Description

Ce code permet de lister tous les modules et les procédures de chaque module (VBA)

Source

  • 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
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


 Sources du même auteur

Source avec Zip Source avec une capture CRÉATION D'HISTOGRAMMES 3D EN SVG À PARTIR D'UNE TABLE ACCES...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) CRYPTAGE ET DECRYPTAGE par jerichez
Source avec Zip Source avec une capture Source .NET (Dotnet) EXEMPLE MODBUS POUR MODULES ADAM, BECKHOFF, WAGO par mnmsjaune
Source avec Zip Source .NET (Dotnet) CRÉER SON PROPRE DESIGNER COMME CELUI DE VISUAL STUDIO par ShareVB
Source avec Zip Source .NET (Dotnet) CONVERSION UTM VERS LAT/LONG par BarresLTD
Source avec Zip CPROPGROUP : COLLECTION FAITE MAISON par Flocreate

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture OUTLOOK ATTACHEMENT SAVER par MoiLafouine
Source avec Zip Source avec une capture CALENDRIER EN VBA POUR EXCEL 2010 par nounou94
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source avec une capture LISTER FICHIERS D'UN DOSSIER par fedexx40
Source avec Zip DÉTECTEUR DE PROCÉDURES ET FONCTIONS INUTILISÉES par 8Tnerolf8

Commentaires et avis

Commentaire de Renfield le 02/12/2005 16:11:05 administrateur CS

je conteste l'utilisation de
UBound(SBCode.SBModule) - 1

si tu as cela, c'est que ton tableau est mal dimensionné, car Ubound renvoie l'indice du dernier element du tableau, et non pas le nombre d'element.

fais plutot :
ReDim SBCode.SBModule(Application.Modules.Count)
et dans tes boucles For :
UBound(SBCode.SBModule)

Commentaire de EBArtSoft le 02/12/2005 18:13:14 administrateur CS

Je contest aussi !!

Faire :
ReDim SBCode.SBModule(Application.Modules.Count-1)

Car Count renvoi le nombre d'element or le tableau commence a zero !

@+

Commentaire de Renfield le 02/12/2005 18:28:13 administrateur CS

exact ^^ (un oubli après copier/coller)

ne pas oublier un petit test
If Application.Modules.Count > 0 Then

et tout devrai rentrer dans l'ordre, n'opérant que s'il y a de la matière première

Commentaire de Patrice99 le 03/12/2005 10:07:24

Pour Access, il est possible d'exporter en texte la totalité du code des formulaires et états, ainsi que le code design, voir ici :
http://patrice.dargenton.free.fr/CodesSources/DBComp.vbp.html#115

Commentaire de santiago69 le 15/05/2006 21:02:38

Salut sbertho,

Est-ce que tu peux m'eclairer sur la necesite de :
    DoCmd.OpenModule SBCode.SBModule(i).Nom
Ne suffit il pas d'appeler le module par
    Module(Nom)

Quel est l'interet de
    ReDim Preserve SBCode.SBModule(i).SBProcedure(ProcNbre)
puisque de toute facon ProcNbre est tjs a 0

Dans VBA-Excel, il ne reconnait ni "DoCmd", ni "vbext_pk_Proc".
Autre probleme, et de taille, "Application.Modules.Count" renvoi toujours 0 ! Quel que soit le nb de modules.

Y'a-t-il une DLL a charger ?

Commentaire de verlainenco le 02/02/2007 13:24:55

Pour Excel vous pouvez trouver une solution assez simple en suivant le lien suivant
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/8d9e267d8b8d5806/929ef81fa5bf1a37%23929ef81fa5bf1a37

Salut.

Commentaire de hebus16 le 14/08/2009 09:45:33

tiens il y'a autre chose qu'il faut pas oublier :
Application.Modules.Count renvoie le nombre de modules OUVERTS de l'application étudiée.
Or si par malheur vous avez fermé vos modules avant de sauvegardé .. il vous renverra automatiquement 0 ^^
C'est une information à ne pas oublier

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

ACCESS VBA - Affecter le nom de la procédure en cours dans une variable [ par JM247L ] Bonjour,Pour la mise en forme d'une gestion d'erreur dans une application Access, je souhaiterai pouvoir récupérer dans une variable le nom de la proc Appelé une fonction public sub [ par cedricbollini ] Bonjour,Je suis novice en programmation VBA et je rencontre en ce moment deux petits problèmes,1er problème: je ne connais pas la syntaxe pour appeler vba excel +liste déroulante [ par flyersgoaler ] Bonjour, j'ai inséré une liste déroulante dans une cellule sur excel.  Chaque nom inséré dans la liste déroulante correspond à mes douze feuilles qui Exporter les données d'une liste sous VBA vers Access [ par Benythefrog ] Bonjour a tous et a toutes les DeveloppeursMerci d'avance pour votre aide qui j'en suis sure me sera trés précieuseVoila je recupere dans une liste un déclarations dans une procédure vba (excel 2003) [ par nasilo ] Bonjour,Retraité depuis peu j'essaie à présent (mieux vaut tard que jamais parait-il), d'apprendre vba sous excel 2003 en modifiant une application bu trier une listbox en vba excel [ par Fabian123 ] Bonjour!tout est dans la question!j'ai une liste d'article sur une feuille excel, qui est chargée dans une listbox, la liste n'est pas triée (et je ne Procédure dans un module puis l'appeler [ par 4rocky4 ] Bonjour,J'ai plusieurs procédure sur plusieurs formulaires Access qui sont les mêmes.Et je voudrais mettre la procédure dans un module et l'appeler à Copie module VB vers VBA [ par love8906 ] Bonsoir à tous,je voudrais recopier le contenu d'un module (.bas) contenu dans une DLL vers VBA excel pour associer la procédure contenu dans ce modul liste déroulante excel vba [ par elisastas ] BonjourTout d'abords merci à tout ceux qui liront ce petit message.Je suis très novice mais en m'explicant je comprends <img class="inlineimg" title=" Question sur VBA excel [ par eastpeople ] Bonjour tout le monde, alors je vais tenter de vos expliquer mon problème.J'ai un userform avec une liste deroulante, j'aimerai que quand une valeur e


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales