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 !