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

Avec un ami, nous sommes en train de travailler sur une nouvelle application à destination des chantiers de construction. D'ailleurs, si vous êtes dans ce domaine, n'hésitez pas à demander une démonstration.

L'outil prenant de l'ampleur, j'ai eu le besoin de documenter les macros qui sont attachées à des objets. Cette macro ne prend cependant pas en compte le code qui est automatiquement attaché à des contrôles ActiveX. Ce type de code est généralement comme ceci : NomDuControle_click.

Voici donc un petit code rapide qui permet 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 bientôt

Pour marque-pages : Permaliens.

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

  1. Jacques St-Gelais dit :

    Bonjour.

    Cela fait plusieurs années que je vous suis à partir du Québec et vos macros me fascines toujours.

    Merci

  2. Gaetan Mourmant dit :

    Merci beaucoup !

Laisser un commentaire

Votre adresse e-mail 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.