Andrew a un classeur qui contient un bon nombre de macros. Il aimerait générer une liste de toutes les macros qu’il contient, il se demande donc s’il existe un moyen d’accomplir la tâche.

Il n’existe aucun moyen intrinsèque dans Excel de créer une liste de macros. Vous pouvez cependant créer une macro qui listera vos macros. (Une sorte de sons redondants, n’est-ce pas?)

À titre d’exemple, considérons la macro suivante, qui parcourt tous les projets de votre classeur pour recueillir tous les noms de macro et les placer dans une feuille de calcul:

Sub ListMacros()

Dim VBComp As VBComponent     Dim wsTarget As Worksheet     Dim StartLine As Long     Dim iRow As Integer

Application.ScreenUpdating = False

Set wsTarget = Worksheets.Add     wsTarget.Range("A1") = "Macro"

wsTarget.Range("A1").Font.Bold = True     With wsTarget.Range("A1").Borders(xlEdgeBottom)

.LineStyle = xlContinuous         .ColorIndex = 0         .TintAndShade = 0         .Weight = xlThin     End With

iRow = 2

For Each VBComp In ThisWorkbook.VBProject.VBComponents         With VBComp.CodeModule             StartLine = .CountOfDeclarationLines + 1             Do Until StartLine >= .CountOfLines                 wsTarget.Cells(iRow, 1) = _                   .ProcOfLine(StartLine, vbext_pk_Proc)

iRow = iRow + 1                 StartLine = StartLine + _                   .ProcCountLines(.ProcOfLine(StartLine, _                   vbext_pk_Proc), vbext_pk_Proc)

Loop         End With     Next VBComp

wsTarget.Range("A1").EntireColumn.AutoFit     Application.ScreenUpdating = True End Sub

Pour utiliser cette macro, vous devez vous assurer que vous disposez du jeu de références d’extensibilité Microsoft VBA. Pour ce faire, procédez comme suit:

  1. Dans l’éditeur VBA, choisissez Références dans le menu Outils. La boîte de dialogue Références s’affiche.

  2. Faites défiler la liste des références disponibles et assurez-vous que la case à cocher Extensibilité de Microsoft Visual Basic pour Applications est activée. (Il peut y avoir un numéro de version à la fin de la référence, mais il doit commencer par les mots indiqués.) (Voir la figure 1.)

  3. Fermez la boîte de dialogue.

Vous devrez également modifier rapidement les paramètres de votre centre de confiance.

Suivez ces étapes:

  1. Affichez le lien: / excelribbon-Displaying_Excels_Developer_Tab [onglet Développeur] du ruban.

  2. Dans le groupe Code, cliquez sur l’outil Sécurité des macros. Excel affiche la boîte de dialogue Centre de gestion de la confidentialité avec les options Paramètres des macros sélectionnées à gauche. (Voir la figure 2.)

  3. Assurez-vous que l’option Trust Access to the VBA Project Object Model est sélectionnée.

  4. Cliquez sur OK.

Lorsque vous exécutez la macro, il ajoute une nouvelle feuille de calcul à votre classeur, puis répertorie les noms de toutes les macros dans tous les modules du classeur.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (5225) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Generating_a_List_of_Macros [Génération d’une liste de macros].