Function GetUserControlInstance(sUCDisplayName As String, oUCParent As Object) As Object
Dim Ctrl As Object
Dim sName As String
Dim sIndex As String
Dim iPos As Integer
Dim sTmp As String
sName = sUCDisplayName
iPos = InStr(1, sName, "(")
If iPos Then 'parenthèse donc groupe
sIndex = Mid$(sName, iPos + 1, Len(sName) - iPos - 1)
sName = Left$(sName, iPos - 1)
Else 'contrôle sans index
sIndex = vbNullString
End If
On Error Resume Next
For Each Ctrl In oUCParent
sTmp = vbNullString
sTmp = CStr(Ctrl.Index)
If sTmp = "-1" Then sTmp = vbNullString
If (Ctrl.Name = sName) And (sTmp = sIndex) Then
Set GetUserControlInstance = Ctrl
Exit For
End If
Next Ctrl
If Err.Number Then Err.Clear
On Error GoTo 0
Set Ctrl = Nothing
End Function
Dim ucObj As Object
' EXEMPLE à PARTIR DU USERCONTROL
Set ucObj = GetUserControlInstance(UserControl.Ambient.DisplayName, UserControl.Parent)
' EXEMPLE à PARTIR D'UNE FORM
Set ucObj = GetUserControlInstance("MonUC(4)", Me)
MsgBox ucObj.ToolTipText