Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Vba : liste des macros

16 réponses
Avatar
Jac
Bonjour à tous,

j'aimerais pourvoir générer dans une feuille, la liste des macros (nom du
module + nom des macros) afin de pouvoir un peu mieux naviguer dans tout ce
que j'ai mis dans mon projet.

Merci d'avance à qui me mettra sur la voie.

Jac

6 réponses

1 2
Avatar
Jac
Bonjour MichDenis,
merci pour le tuyau, mais pour le moment, pas moyen de le faire fonctionner
: pas moyen de la faire apparaître dans la liste des macros complémentaires,
donc, bien entendu, aucun classeur dans la Workbook list.


"MichDenis" a écrit dans le message de news:

la macro de Stephen Bullen (XL97) qui crée
l'arborescense et l'interdépendance des macros d'un classeur
sous forme pseudo graphique avec les notions de parent/enfant ainsi que
d'autres détailles tels que nombre d'appels, tailles etc...
cf ../..
· A straight list of parent/child procedures, useful for checking
the detail
· A summary pivot table of inter-module and intra-module calls, so
you can see at a glance which modules are closely coupled
· A pivot table with the parent procedure names in a page field,
so
you can easily identify which child procedures it calls
· A pivot table with the child procedure names in a page field, so
you can easily identify the procedures that call it
· A complete list of all the procedure calls, shown in a list
structure, enabling you to trace through the procedure flow
../..

http://www.oaltd.co.uk/DLCount/DLCount.asp?fileÊllTree.zip

NB:
petits problemes connus :
c'est en fait un fichier XLA avec une extension XLS,
aprés activation du xls il faut cocher la macro complémentaire: Call Tree
97

petit souci également d'affichage de l'arboresence si la police MS
LineDraw
n'est pas disponible...



"Jac" a écrit dans le message de news:

Bonjour à tous,

j'aimerais pourvoir générer dans une feuille, la liste des macros (nom du
module + nom des macros) afin de pouvoir un peu mieux naviguer dans tout
ce
que j'ai mis dans mon projet.

Merci d'avance à qui me mettra sur la voie.

Jac





Avatar
Jac
Oui, bien sûr, mais c'est tellement facile et rapide... De plus il y a pas
mal de lettres qu'Excel n'a pas raccroché à la touche CTRL dont les
majuscules.

"LSteph" a écrit dans le message de news:

juste pour le reste..
...le raccourci clavier, c'est contraire à mes pratiques
mais si tu es prêt à te priver de ceux qui existent pour des commandes
d'excel en y associant CTrl+ une lettre
dans outils macros
sélectionne la macro puis clique sur options.


un bouton outil ou commande de menu serait amha plus approprié.

AmiCordialement.

lSteph

Bonsoir Steph,
merci de t'être penché sur ma requête.
Mon seul problème reste le suivant : cette macro agit dans le classeur
qui
la contient et moi, j'aurais aimé pouvoir mettre cette macro dans un
classeur invisible et générer la liste des macros avec un raccourci
clavier
dans le classeur actif. Est-ce possible ?


"LSteph" a écrit dans le message de news:
%
Bonsoir Jac,

Sub RapportProj()
Dim oMod As VBComponent, i As Long, j As Integer
Dim myProc As String, myCell As Range
i = 1
Application.ScreenUpdating = False
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With

For Each oMod In ThisWorkbook.VBProject.VBComponents
i = i + 1
With oMod.CodeModule
For j = 1 To .CountOfLines
If Len(.Lines(j, 1)) > 1 And _
.ProcOfLine(j, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(j, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(j, 1)
End If
Next j
End With
Next

End Sub

'Cordialement

'lSteph

Bonjour à tous,

j'aimerais pourvoir générer dans une feuille, la liste des macros (nom
du module + nom des macros) afin de pouvoir un peu mieux naviguer dans
tout ce que j'ai mis dans mon projet.

Merci d'avance à qui me mettra sur la voie.

Jac









Avatar
Modeste
Bonsour® Daniel.j avec ferveur ;o))) vous nous disiez :

Une macro de Laurent
Mais qui ne donne pas le nom du module
voir peut-etre alors là :


http://xcell05.free.fr/pages/telecharge/index.html#Listeprocs
http://xcell05.free.fr/downloads/Listeprocs.zip

--

@+
;o)))

Avatar
Jac
Impec !!!

Je vais enfin pouvoir documenter mon VBA dans une feuille du classeur.

Merci beaucoup.

Jac

"LSteph" a écrit dans le message de news:
%
oui donc:

Sub RapportProj()
Dim oMod As VBComponent, J As Integer
Dim myProc As String, myCell As Range
Application.ScreenUpdating = False
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With
For Each oMod In ActiveWorkbook.VBProject.VBComponents
With oMod.CodeModule
For J = 1 To .CountOfLines
If Len(.Lines(J, 1)) > 1 And _
.ProcOfLine(J, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(J, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(J, 1)
End If
Next J
End With
Next
End Sub

Bonsoir Steph,
merci de t'être penché sur ma requête.
Mon seul problème reste le suivant : cette macro agit dans le classeur
qui
la contient et moi, j'aurais aimé pouvoir mettre cette macro dans un
classeur invisible et générer la liste des macros avec un raccourci
clavier
dans le classeur actif. Est-ce possible ?


"LSteph" a écrit dans le message de news:
%
Bonsoir Jac,

Sub RapportProj()
Dim oMod As VBComponent, i As Long, j As Integer
Dim myProc As String, myCell As Range
i = 1
Application.ScreenUpdating = False
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With

For Each oMod In ThisWorkbook.VBProject.VBComponents
i = i + 1
With oMod.CodeModule
For j = 1 To .CountOfLines
If Len(.Lines(j, 1)) > 1 And _
.ProcOfLine(j, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(j, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(j, 1)
End If
Next j
End With
Next

End Sub

'Cordialement

'lSteph

Bonjour à tous,

j'aimerais pourvoir générer dans une feuille, la liste des macros (nom
du module + nom des macros) afin de pouvoir un peu mieux naviguer dans
tout ce que j'ai mis dans mon projet.

Merci d'avance à qui me mettra sur la voie.

Jac









Avatar
Jac
C'est vrai que Laurent est incontournable...

"Modeste" a écrit dans le message de news:

Bonsour® Daniel.j avec ferveur ;o))) vous nous disiez :

Une macro de Laurent
Mais qui ne donne pas le nom du module
voir peut-etre alors là :


http://xcell05.free.fr/pages/telecharge/index.html#Listeprocs
http://xcell05.free.fr/downloads/Listeprocs.zip

--

@+
;o)))





Avatar
lSteph
Précision, il faut cocher MsVbaextensibility

C:Program FilesFichiers communsMicrosoft SharedVBAVBEEXT1.OLB

On 4 juil, 23:48, LSteph wrote:
oui donc:

Sub RapportProj()
Dim oMod As VBComponent, J As Integer
Dim myProc As String, myCell As Range
Application.ScreenUpdating = False
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With
For Each oMod In ActiveWorkbook.VBProject.VBComponents
With oMod.CodeModule
For J = 1 To .CountOfLines
If Len(.Lines(J, 1)) > 1 And _
.ProcOfLine(J, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(J, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(J, 1)
End If
Next J
End With
Next
End Sub


Bonsoir Steph,
merci de t'être penché sur ma requête.
Mon seul problème reste le suivant : cette macro agit dans le classeu r qui
la contient et moi, j'aurais aimé pouvoir mettre cette macro dans un
classeur invisible et générer la liste des macros avec un raccourci clavier
dans le classeur actif. Est-ce possible ?

"LSteph" a écrit dans le message de news:
%
Bonsoir Jac,

Sub RapportProj()
Dim oMod As VBComponent, i As Long, j As Integer
Dim myProc As String, myCell As Range
i = 1
Application.ScreenUpdating = False
Worksheets.Add
With ActiveSheet
.Name = "Rapport projet " & Format(Now, "ddmmyyyy_hhnnss")
.Cells(1) = "Nom de module"
.Cells(2) = "Procèdures"
.Cells(3) = "Détail ligne"
End With

For Each oMod In ThisWorkbook.VBProject.VBComponents
i = i + 1
With oMod.CodeModule
For j = 1 To .CountOfLines
If Len(.Lines(j, 1)) > 1 And _
.ProcOfLine(j, vbext_pk_Proc) <> myProc Then
myProc = .ProcOfLine(j, vbext_pk_Proc)
Set myCell = [a65536].End(xlUp)(2)
myCell = oMod.Name
myCell.Offset(0, 1) = myProc
myCell.Offset(0, 2) = .Lines(j, 1)
End If
Next j
End With
Next

End Sub

'Cordialement

'lSteph

Bonjour à tous,

j'aimerais pourvoir générer dans une feuille, la liste des macros (nom du
module + nom des macros) afin de pouvoir un peu mieux naviguer dans t out
ce que j'ai mis dans mon projet.

Merci d'avance à qui me mettra sur la voie.

Jac








1 2