Bonjour,
Une proposition à adapter.
Cdlt.
Option Explicit
Public Sub ListControls()
Dim frm As UserForm, ws As Worksheet, ctl As Control, rw As Long
Set ws = Worksheets(1)
Set frm = frmTest
On Error Resume Next
With ws
.Cells(1).CurrentRegion.ClearContents
For Each ctl In frm.Controls
rw = rw + 1
.Cells(rw, 1).Value = TypeName(ctl)
.Cells(rw, 2).Value = ctl.Name
.Cells(rw, 3).Value = ctl.Caption
Next ctl
End With
End Sub