Sub Lister()
Dim Ctrl As MSForms.Control, i&, usf, entetes
Cells.Clear
entetes = _
Array("Type de Contrôle", "Nom Contrôle", "Height", "Left", "ControlTipText", "TabIndex", "TabStop", "Tag", "Top", "Visible", _
"Width", "RowSource", "RowSourceType", "BoundValue", "[_GetID]", "[_GethWnd]", "InSelection", "Parent Name", "Cancel", "ControlSource", _
"Default", "HelpContextID", "LayoutEffect", "Object", "Parent", "Accelerator", "Caption", "ForeColor", "BackColor")
[A1:AC1] = entetes: i = 1: usf = InputBox("Nom de l'userform?", "Liste propriétés", "Userform1")
Application.ScreenUpdating = False
On Error Resume Next
For Each Ctrl In ThisWorkbook.VBProject.VBComponents(CStr(usf)).Designer.Controls'*
i = i + 1
With Ctrl
Cells(i, 1) = TypeName(Ctrl): Cells(i, 2) = .Name: Cells(i, 3) = .Height: Cells(i, 4) = .Left: Cells(i, 5) = .ControlTipText
Cells(i, 6) = .TabIndex: Cells(i, 7) = .TabStop: Cells(i, 8) = .Tag: Cells(i, 9) = .Top: Cells(i, 10) = .Visible: Cells(i, 12) = .RowSource
Cells(i, 13) = .RowSourceType: Cells(i, 14) = .BoundValue: Cells(i, 15) = .[_GetID]: Cells(i, 16) = .[_GethWnd]: Cells(i, 17) = .InSelection
Cells(i, 18) = .Parent.Name: Cells(i, 19) = .Cancel: Cells(i, 20) = .ControlSource: Cells(i, 22) = .HelpContextID: Cells(i, 23) = .LayoutEffect
Cells(i, 24) = .Object: Cells(i, 25) = .Parent: Cells(i, 26) = .SpecialEffect: Cells(i, 27) = .Caption: Cells(i, 28) = .ForeColor: Cells(i, 29) = .BackColor
End With
Next Ctrl
'inspired by aalex_38 (091215)
End Sub