Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Analyse de code

  • Initiateur de la discussion Initiateur de la discussion papybob69
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

papybob69

Guest
J'ai développé sous Excel une application à usage personnel.

Actuellement le code VBA de cette application comporte environ
18 000 lignes réparti sur une centaine de procédures.

Je ne peux plus retrouver tout les appels de procédures/routines
par une procédure de cette application. 😕

Je rechercher une macro complémentaire ou un utilitaire qui puissent analyser le code
et sortir le résultat sous forme d'un tableau ou d'un organigramme


@+
 
Re : Analyse de code

Merci Bebere pour l'info.

J'utilise déjà MZTools ver. 3.0.1186 en français.

Mais l'analyseur de code ne me donne que les variables et procédures présentent non utilisées.
À moins d'avoir zappé un réglage dans les options de MZTools?

Je cherche à obtenir la liste des procédures qui appel d'autres procédures.

@+
 
Dernière modification par un modérateur:
Re : Analyse de code

Bonsoir Bebere

Pour ce qui est de lister toutes les macros j’ai installé une macro complémentaire. Listeprocs.xla

le fichier au format ZIP de la macro complémentaire Listeprocs.xla est disponible sur ce site

Ce lien n'existe plus


Cette macro répertorie l'ensemble des procédures VBA présentes dans le classeur actif
et les liste dans une feuille de calcul (nom et type du module, nom de la fonction, accès Public ou Private, etc.)


Dans un second temp je cherche à lister uniquement les macros qui en cours d’exécution exécutent une autre macro

Exemple de structure de macro que je voudrais lister

Sub Macro1()

….ligne de code
….ligne de code

Macro2 (Exécution de la macro2)

….ligne de code
….ligne de code

End Sub



@+
 
Dernière modification par un modérateur:
Re : Analyse de code

Bonjour Bebere,

Ce weekend j’ai téléchargé et testé le fichier ListeMacro.xls.

La liste de macros obtenue ne tien compte que des Macros enregistrées dans
[Modules] et ignore tout ce qui est dans [Microsoft Excel Objets], [Feuilles] et [Modules de classe].

Sont seul intérêt c’est de lister les raccourcis clavier s’il y en à.



😱
@+
 
Re : Analyse de code

bonjour Papybob
que donne ce code dans ton classeur
juste adapter les feuilles(feuil2)

Sub ListeMacrosModule()
'nécessite une référence à la librairie
'Microsoft Visual Basic For Application Extensibility 5.3
Dim VBCodeMod As CodeModule
Dim StartLine As Long
Dim ProcName As String
Dim I As Long, L As Long
L = 1
Feuil2.Cells.ClearContents

For I = 1 To ThisWorkbook.VBProject.VBComponents.Count
Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(I).CodeModule

With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
Feuil2.Cells(L, 1).Value = .Parent.Name 'VBCodeMod.Name '
Feuil2.Cells(L, 2).Value = .ProcOfLine(StartLine, vbext_pk_Proc)
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
L = L + 1
Loop
End With
Next I

End Sub

la 2ème partie est commencée,pour le moment toutes les lignes contenant le mot recherché sont récoltées
à bientôt
 
Re : Analyse de code

Bonjour Bebere,

Merci pour ces quelques lignes de code

Au premier teste pas-à-pas la macro à fonctionnée mais les cellules restaient vide.

J’ai supprimé " Feuil2." devant "Cells…… " sur les trois lignes.

Cette fois ça fonctionne j’obtiens la liste des macros du projet


Maintenant il faut rechercher dans le code de la macro si le nom d’une ou plusieurs des autres macros du projet apparaît


@+
 
Re : Analyse de code

Re,

La commande [Débogage >Compiler VBAProject] appliqué au projet
ListeMacro.xls génère un message d’erreur de compilation

😱 Nombre d'arguments incorrect ou affectation de propriété incorrecte

Macro du module3 en cause

Sub testZaza()
ChercheProcedure "ListeMacros"
End Sub



@+
 
Re : Analyse de code

bonjour Papybob
pas d'erreur içi
les 2 macros du bouton feuil2 sont dans module5
celle du bouton de feuil1 dans module1
le reste du bric à brac
regarde si listemacro existe,si non crée en une ou supprime testzaza
pour moi ce serait intéressant de savoir le résultat obtenu dans ton fichier
à bientôt
 
Re : Analyse de code

Merci Bebere pour l’alerte, aucun virus détecté sur ma machine.

J’ai testé les macros que tu propose dans ListeMacro.xls cela fonctionne.

Mais ce n’est pas le résultat que je cherche à obtenir.

Voici une copie d’écran du résultat souhaité.



Tu peux voir que seule les Macros appelant d’autres Macros sont listées dans la colonne 1

@+
 
Re : Analyse de code

bonjour Papybob
j'ai dû éliminer le fichier
si tu veux remettre le fichier,si je reprend l'autre virus Heur/macro excel2000
peut être qu'avec le tien cela ira
à bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
8
Affichages
1 K
R
Réponses
10
Affichages
5 K
B
  • Question Question
Réponses
12
Affichages
17 K
M
Réponses
0
Affichages
971
M
B
Réponses
3
Affichages
1 K
G
Réponses
3
Affichages
746
E
Réponses
0
Affichages
1 K
eeyglunent
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…