• Initiateur de la discussion Initiateur de la discussion tf1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tf1

XLDnaute Occasionnel
Bonjour

J'ai une fichier excel avec pleins de macros
le souhaite savoir comment faire pour voir on totalité la liste de mes macros et d'imprimer cette liste.
juste la liste des titres des macros sans le contenue de la macro....

Merci
 
Re : Liste de mes macros

Re


Et si tf1 a comme moi une inclinaison pour le web anglophone,
il aurait pu tomber sur ce code de Nate Oliver (MVP de son état) 😉

Bref c'est pas les exemples qui manquent ici ou ailleurs 😉
(mais chercher avant de poser une question est de moins en moins dans les mœurs 😉 )
Code:
Sub IlsSontFraisMesMaquereaux()
Dim i As Long, MyProc As String
Dim vBcomp As Object
Dim xlApp As Object, xlWb As Object
Set xlApp = GetObject(, "Excel.Application")
Set xlWb = xlApp.Workbooks(1)
For Each vBcomp In xlWb.VBProject.VBComponents
With vBcomp.CodeModule
    For i = 1 To .CountOfLines
    If Not MyProc = .ProcOfLine(i, 0) And _
        Not .ProcOfLine(i, 0) = vbNullString Then
            MyProc = .ProcOfLine(i, 0)
            If Not CBool(InStrB(1, MyProc, "ProcLst")) Then _
            Debug.Print MyProc
        End If
    Next i
End With
Next vBcomp
Set xlWb = Nothing: Set xlApp = Nothing
End Sub
 
Dernière édition:
Re : Liste de mes macros

Re, Bonjour 00

Pourtant en reprenant le code de JM, ça peux le faire:

Code:
Sub IlsSontFraisSesMaquereaux()
 Dim i As Long, MyProc As String
 Dim vBcomp As Object
 Dim xlApp As Object, xlWb As Object
 Set xlApp = GetObject(, "Excel.Application")
 Sheets.Add
 j = 1
 Set xlWb = xlApp.Workbooks(1)
 For Each vBcomp In xlWb.VBProject.VBComponents
 With vBcomp.CodeModule
     For i = 1 To .CountOfLines
     If Not MyProc = .ProcOfLine(i, 0) And _
         Not .ProcOfLine(i, 0) = vbNullString Then
             MyProc = .ProcOfLine(i, 0)
             If Not CBool(InStrB(1, MyProc, "ProcLst")) Then _
             Debug.Print MyProc
             ActiveSheet.Cells(j, 1).Value = MyProc: j = j + 1
         End If
     Next
 End With
 Next vBcomp
 Set xlWb = Nothing: Set xlApp = Nothing
End Sub
 
Re : Liste de mes macros

Re, bonjour 00 😉

Il faut activer le référence idoine dans VBE
(de mémoire Microsoft Visual Basic for Application Extensability)
Edition:ma mémoire n'est plus ce qu'elle était, c'est Extensibility
(tf1: là aussi chercher sur le web pour plus de détails ..., be curious camarade 😉)
et sans doute cocher Faire Confiance au Projet Visual Basic dans Editeurs approuvés
(voir dans Outils/Macros/Sécurité)

Évidemment comme on utilise Debug le résultat s'affichera dans le fenêtre d'Exécution
mais avec la modif de MJ13, on aura le résultat dans une nouvelle feuille. 😉
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2016 liste
Réponses
10
Affichages
386
Réponses
15
Affichages
635
W
Réponses
3
Affichages
196
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
663
  • Question Question
Microsoft 365 problème CHDIR
Réponses
59
Affichages
2 K
Réponses
8
Affichages
312
Réponses
5
Affichages
166
  • Résolu(e)
Microsoft 365 problème
Réponses
19
Affichages
916
Retour