lister les procédures d'un classeur

Le
Le Nordiste
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 du
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5392931
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


Le Nordiste
Le #5392901
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.
JB
Le #5392691
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.


zOrg2net
Le #5392641
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.






Laurent Longre
Le #5392421
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.







JB
Le #5392161
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
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 -




zOrg2net
Le #5390991
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.








Publicité
Poster une réponse
Anonyme