Retourner la liste des macros affectées à des objets.

Avec un ami, nous sommes en train de tra­vailler sur une nou­velle appli­ca­tion à des­ti­na­tion des chantiers de con­struc­tion. D’ailleurs, si vous êtes dans ce domaine, n’hésitez pas à deman­der une démon­stra­tion.

L’outil prenant de l’am­pleur, j’ai eu le besoin de doc­u­menter les macros qui sont attachées à des objets. Cette macro ne prend cepen­dant pas en compte le code qui est automa­tique­ment attaché à des con­trôles ActiveX. Ce type de code est générale­ment comme ceci : NomDuControle_click.

Voici donc un petit code rapi­de qui per­met de le faire :

Sub retourneMacroAffecteesAObject()
    Dim shp As Shape
    Dim wks As Worksheet
    Dim wksResult As Worksheet
    Dim lLigne As Long: lLigne = 1
    Set wksResult = ThisWorkbook.Worksheets.Add
    For Each wks In ThisWorkbook.Worksheets
        For Each shp In wks.Shapes
            If shp.OnAction <> "" Then
                wksResult.Range("A" & lLigne).Value = wks.name
                wksResult.Range("B" & lLigne).Value = shp.name
                wksResult.Range("C" & lLigne).Value = shp.OnAction
                wksResult.Range("D" & lLigne).Select
                wksResult.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "'" & wks.name & "'!A1", TextToDisplay:="'" & wks.name & "'!A1"
                lLigne = lLigne + 1
            End If
        Next shp
    Next wks
    wksResult.Columns("A:D").EntireColumn.AutoFit
    wksResult.Range("A1").Select
End Sub

A bien­tôt

En cadeau de bien­v­enue : les 7 com­bi­naisons de touch­es indis­pens­ables sur Excel
Pour marque-pages : permalien.

2 réactions à Retourner la liste des macros affectées à des objets.

  1. Jacques St-Gelais a écrit:

    Bon­jour.

    Cela fait plusieurs années que je vous suis à par­tir du Québec et vos macros me fascines tou­jours.

    Mer­ci

  2. Gaetan Mourmant a écrit:

    Mer­ci beau­coup !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.