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
Bonjour.
Cela fait plusieurs années que je vous suis à partir du Québec et vos macros me fascines toujours.
Merci
Merci beaucoup !