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
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
qui devrait à priori convenir.
--
Amicales Salutations
A_S_rauphil@wanadoo.fr
Retirer A_S_ pour répondre.
XL97 / XL2002
<bobdup@libertysurf.fr> a écrit dans le message de news:%23aaHh2pgDHA.944@TK2MSFTNGP11.phx.gbl...
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
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
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
<bobdup@libertysurf.fr> a écrit dans le message de
news:%23aaHh2pgDHA.944@TK2MSFTNGP11.phx.gbl...
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
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
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
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!
<bobdup@libertysurf.fr> a écrit dans le message de news:ui%23mfG2gDHA.1684@TK2MSFTNGP10.phx.gbl...
Merci pour vos réponses mais je n'arrive pas à exécuter le code j'obtiens
toujours la même erreur
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