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

lister les procédures d'un classeur

7 réponses
Avatar
Le Nordiste
Bonjour,

Je dispose d'un classeur personnel contenant plusieurs modules et sur
chacun de ceux ci un nombre variable de proc=E9dures, fonctions,...

Je d=E9sire cr=E9er un index de ces macros sur une feuille non masqu=E8e du
classeur,
quelque chose du style :

Sub MaProc=E9dure1 module : MonModule1
Sub MaProc=E9dure2 module : MonModule2
Sub MaProc=E9dure3 module : MonModule1

Si en plus il pouvait y avoir un lien URL pour aller directement au
texte de la macro
ce serait parfait

Mon Pb est de parcourir les objets VBA et de lister.

Merci de votre aide

7 réponses

Avatar
JB
Bonjour,

-Outils/Macros/Sécurité/Sources fiables/Cocher Faire confiance au
projet Visual Basic


i = 1
For Each c In ActiveWorkbook.VBProject.VBComponents
For ligne = 1 To c.CodeModule.CountOfLines
temp = Trim(c.CodeModule.Lines(ligne, 1))
If Left(temp, 3) = "Sub" Then
Cells(i, 1) = Mid(Left(temp, Len(temp) - 2), 4)
i = i + 1
End If
Next
Next

JB


On 26 nov, 11:53, Le Nordiste
wrote:
Bonjour,

Je dispose d'un classeur personnel contenant plusieurs modules et sur
chacun de ceux ci un nombre variable de procédures, fonctions,...

Je désire créer un index de ces macros sur une feuille non masquèe d u
classeur,
quelque chose du style :

Sub MaProcédure1 module : MonModule1
Sub MaProcédure2 module : MonModule2
Sub MaProcédure3 module : MonModule1

Si en plus il pouvait y avoir un lien URL pour aller directement au
texte de la macro
ce serait parfait

Mon Pb est de parcourir les objets VBA et de lister.

Merci de votre aide


Avatar
Le Nordiste
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.
Avatar
JB
http://cjoint.com/?lAqfTdyHVe

JB


On 26 nov, 12:54, Le Nordiste
wrote:
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.


Avatar
zOrg2net
Bojour @ tous,

JB ton bout de code est génial. Je me demande, pour suivre un peur l'idée de
"Le Nordiste", si l'on peut aussi inscrire le nom des modules, comportant les
procédures listées. Un peu comme une arborescences des répertoires ?
Module1
Sub1
Sub2
Module2
Sub1
Sub4
etc...

Merci de ta réponse.

zOrg2net
7OuNet

Le dicton (Marseillais) du jour:
Y vaut mieux attraper le Parkingston que l'Azeïmer, parce qu'il vaut mieux
faire tomber un peu de son pastis, que d'oublier de le boire.




http://cjoint.com/?lAqfTdyHVe

JB


On 26 nov, 12:54, Le Nordiste
wrote:
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.






Avatar
Laurent Longre
Hello,

Essaie ça : http://xcell05.free.fr/pages/telecharge/#Listeprocs

Cordialement,

Laurent

Bojour @ tous,

JB ton bout de code est génial. Je me demande, pour suivre un peur l'idée de
"Le Nordiste", si l'on peut aussi inscrire le nom des modules, comportant les
procédures listées. Un peu comme une arborescences des répertoires ?
Module1
Sub1
Sub2
Module2
Sub1
Sub4
etc...

Merci de ta réponse.

zOrg2net
7OuNet

Le dicton (Marseillais) du jour:
Y vaut mieux attraper le Parkingston que l'Azeïmer, parce qu'il vaut mieux
faire tomber un peu de son pastis, que d'oublier de le boire.




http://cjoint.com/?lAqfTdyHVe

JB


On 26 nov, 12:54, Le Nordiste
wrote:
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.







Avatar
JB
Bonjour,

Sub essai()
i = 1
For Each c In ActiveWorkbook.VBProject.VBComponents
If c.Type = 1 Then
Cells(i, 1) = c.CodeModule.Name
i = i + 1
For ligne = 1 To c.CodeModule.CountOfLines
temp = Trim(c.CodeModule.Lines(ligne, 1))
If Left(temp, 3) = "Sub" Then
Cells(i, 1) = Mid(Left(temp, Len(temp) - 2), 4)
i = i + 1
End If
Next ligne
End If
Next c
End Sub

JB


On 26 nov, 16:28, zOrg2net wrote:
Bojour @ tous,

JB ton bout de code est génial. Je me demande, pour suivre un peur l'id ée de
"Le Nordiste", si l'on peut aussi inscrire le nom des modules, comportant les
procédures listées. Un peu comme une arborescences des répertoires ?
Module1
Sub1
Sub2
Module2
Sub1
Sub4
etc...

Merci de ta réponse.

zOrg2net
7OuNet

Le dicton (Marseillais) du jour:
Y vaut mieux attraper le Parkingston que l'Azeïmer, parce qu'il vaut mie ux
faire tomber un peu de son pastis, que d'oublier de le boire.




http://cjoint.com/?lAqfTdyHVe

JB

On 26 nov, 12:54, Le Nordiste
wrote:
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.- Masquer le texte des messages précéde nts -



- Afficher le texte des messages précédents -




Avatar
zOrg2net
Re bonjour,

J'ai été un peu déconnecté ces temps ci, à cause de formations. Je vous
remercie beaucoup pour ces réponses. Dès que j'ai un peu de temps, je
testerai tous ça.
Merci encore.

zOrg2net
Le dicton du jour: Si les anglais peuvent survivre à leur cuisine, ils
peuvent survivre à tout.


Bojour @ tous,

JB ton bout de code est génial. Je me demande, pour suivre un peur l'idée de
"Le Nordiste", si l'on peut aussi inscrire le nom des modules, comportant les
procédures listées. Un peu comme une arborescences des répertoires ?
Module1
Sub1
Sub2
Module2
Sub1
Sub4
etc...

Merci de ta réponse.

zOrg2net
7OuNet

Le dicton (Marseillais) du jour:
Y vaut mieux attraper le Parkingston que l'Azeïmer, parce qu'il vaut mieux
faire tomber un peu de son pastis, que d'oublier de le boire.




http://cjoint.com/?lAqfTdyHVe

JB


On 26 nov, 12:54, Le Nordiste
wrote:
J'ai placé le code dans le module ThisWorkbook puis dans un module de
test

ça coince dés la ligne : "For each c ..."
erreur d'éxécution 1004 erreur définie par l'application ou par
l'objet"

Merci de l'aide apportée.