OVH Cloud OVH Cloud

Récupérer des noms de macro

2 réponses
Avatar
Franck
Bonjour,

Y'a t-il un moyen simple VB ou autre, de scanner un Module
et d'en sortir tous les noms de macro ?

Merci

2 réponses

Avatar
michdenis
Bonjour Frank,


Une procédure de Frédéric Sigonneau :


http://perso.wanadoo.fr/frederic.sigonneau


Tu dois ajouter la bibliothèque suivante à ton classeur pour exécuter cette macro.

Attention : Cette procédure ne tiendra pas compte des "fonctions personnalisées" du module concerné, seulement les
procédures.


"Microsoft Visual Basic For Application Extensibility 5.3"

'=================== Sub ListeMacrosModule()
'nécessite une référence à la librairie
'Microsoft Visual Basic For Application Extensibility 5.3
Dim VBCodeMod As CodeModule
Dim StartLine As Long
Dim ProcName As String
Dim Wbk As Workbook
Dim i As Long

Set Wbk = ThisWorkbook 'ou ce que tu veux
'remplace "Module1" par le nom du module à examiner
Set VBCodeMod = Wbk.VBProject.VBComponents("Module1").CodeModule

Workbooks.Add: i = 1
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
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
End Sub
'===================

Salutations!



"Franck" a écrit dans le message de news:14bb01c4ac46$1c0b3040$
Bonjour,

Y'a t-il un moyen simple VB ou autre, de scanner un Module
et d'en sortir tous les noms de macro ?

Merci
Avatar
Franck
Génial !

C'est parfait, merci

VIVE LE MPFE !!!!


-----Message d'origine-----
Bonjour Frank,


Une procédure de Frédéric Sigonneau :


http://perso.wanadoo.fr/frederic.sigonneau


Tu dois ajouter la bibliothèque suivante à ton classeur
pour exécuter cette macro.


Attention : Cette procédure ne tiendra pas compte
des "fonctions personnalisées" du module concerné,

seulement les
procédures.


"Microsoft Visual Basic For Application Extensibility 5.3"

'====================
Sub ListeMacrosModule()
'nécessite une référence à la librairie
'Microsoft Visual Basic For Application Extensibility 5.3
Dim VBCodeMod As CodeModule
Dim StartLine As Long
Dim ProcName As String
Dim Wbk As Workbook
Dim i As Long

Set Wbk = ThisWorkbook 'ou ce que tu veux
'remplace "Module1" par le nom du module à examiner
Set VBCodeMod = Wbk.VBProject.VBComponents
("Module1").CodeModule


Workbooks.Add: i = 1
With VBCodeMod
StartLine = .CountOfDeclarationLines + 1
Do Until StartLine >= .CountOfLines
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
End Sub
'====================


Salutations!



"Franck" a écrit dans le
message de news:14bb01c4ac46$1c0b3040$

Bonjour,

Y'a t-il un moyen simple VB ou autre, de scanner un Module
et d'en sortir tous les noms de macro ?

Merci


.