OVH Cloud OVH Cloud

Lister les macros d'un classeur

4 réponses
Avatar
bobdup
Bonjour =E0 tous,

J'essaye de cr=E9er une macro qui liste les diff=E9rentes proc=E9dures du=20
classeur actif. j'ai =E9crit ce code

Sub listvbc()
Dim VBC As VBComponent
Dim Msg As String
=20
For Each VBC In ActiveWorkbook.VBProject.VBComponents
With VBC.CodeModule
Msg =3D .Name
Debug.Print Msg
End With
Next VBC
End Sub

J'obtiens une erreur 1004: La m=E9thode 'VBProject' de l'objet '=5Fworkbook=
' a=20
echou=E9
j'ai bien ajout=E9 la r=E9f=E9rence vers - Microsoft Visual Basic For=20
Applications Extensibility 5.3

je n'ai pas plus d'info dans l'aide.

Est ce que l'un d'entre vous peut m'aider

Merci d'avance

Bruno

4 réponses

Avatar
Philippe.R
Bonsoir,

Il y a ceci sur le site de Frédéric :

http://perso.wanadoo.fr/frederic.sigonneau/code/VBE/ListeMacrosDisponiblesClasseurs.txt

qui devrait à priori convenir.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

a écrit dans le message de news:%
Bonjour à tous,

J'essaye de créer une macro qui liste les différentes procédures du
classeur actif. j'ai écrit ce code

Sub listvbc()
Dim VBC As VBComponent
Dim Msg As String

For Each VBC In ActiveWorkbook.VBProject.VBComponents
With VBC.CodeModule
Msg = .Name
Debug.Print Msg
End With
Next VBC
End Sub

J'obtiens une erreur 1004: La méthode 'VBProject' de l'objet '_workbook' a
echoué
j'ai bien ajouté la référence vers - Microsoft Visual Basic For
Applications Extensibility 5.3

je n'ai pas plus d'info dans l'aide.

Est ce que l'un d'entre vous peut m'aider

Merci d'avance

Bruno
Avatar
Clément Marcotte
Bonjour,

Si tu ne veux pas réinventer la roue:

http://longre.free.fr/pages/telecharge/index.html#Listeprocs



a écrit dans le message de
news:%
Bonjour à tous,

J'essaye de créer une macro qui liste les différentes procédures du
classeur actif. j'ai écrit ce code

Sub listvbc()
Dim VBC As VBComponent
Dim Msg As String

For Each VBC In ActiveWorkbook.VBProject.VBComponents
With VBC.CodeModule
Msg = .Name
Debug.Print Msg
End With
Next VBC
End Sub

J'obtiens une erreur 1004: La méthode 'VBProject' de l'objet
'_workbook' a
echoué
j'ai bien ajouté la référence vers - Microsoft Visual Basic For
Applications Extensibility 5.3

je n'ai pas plus d'info dans l'aide.

Est ce que l'un d'entre vous peut m'aider

Merci d'avance

Bruno
Avatar
michdenis
Bonjour Bob,


Avant de lancer cette procédure, tu dois installer la bibliothèque suivante :


Pour ce faire, tu ouvres vbe(visual basic editor)
À partir de la barre d'outils / outils / références / tu coches la réféence suivante:

"Microsoft Visual Basic For Application Extensibility 5.3"

Adaptation libre d'une procédure originale de Frédéric Sigonneau.

Copie ce qui suit dans un module standard. Elle va lister toutes les procédures dans une nouvelle feuille du classeur
que tu lui indiqueras dans la procédure.

'-----------------------------------
Sub ListeMacrosModule()

Dim Wbk As Workbook, Sh As Worksheet
Dim VBCodeMod As Object, Comp As Object, C As Object
Dim StartLine As Long, i As Long, ProcName As String

'Identifie le classeur source où sont les procédures
Set Wbk = Workbooks(ThisWorkbook.Name) 'ou ce que tu veux

'Détruit la feuille si elle existe déjà.
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("MesProcs").Delete
Application.DisplayAlerts = True

'Ajoute une feuille au projet où sera fait le listing
Set Sh = Wbk.Worksheets.Add
'Nomme la feuille
Sh.Name = "MesProcs"

i = 1
'Boucle sur toutes les modules du projet, incluant le formulaire.
For Each C In Wbk.VBProject.VBComponents
Set Comp = C
Set VBCodeMod = Wbk.VBProject.VBComponents(C.Name).CodeModule

With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
Sh.Cells(i, 1).Value = .ProcOfLine(StartLine, vbext_pk_Proc)
StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _
vbext_pk_Proc), vbext_pk_Proc)
i = i + 1
Loop
End With
Next

Set VBCodeMod = Nothing: Set Comp = Nothing: Set C = Nothing
Set Wk = Nothing: Set Sh = Nothing
End Sub
'-----------------------------------


Salutations!


a écrit dans le message de news:ui%
Merci pour vos réponses mais je n'arrive pas à exécuter le code j'obtiens
toujours la même erreur
Avatar
bobdup
YES !!!!!!!!!!!!!

Merci bcp