Récupérer un objet CONTROL depuis son NAME


Contenu du snippet

Function GetControlByName(ByRef oForm As Form, ByVal sControlName As String) As Control
    Dim oCtrl   As Object
    Dim Index   As Integer
    Dim iGpePos As Integer
'   groupe de controles?
    iGpePos = VBA.InStr(1, sControlName, "(")
    If iGpePos Then
        Index = VBA.Val(VBA.Mid(sControlName, iGpePos + 1, VBA.Len(sControlName) - 1 - iGpePos))
        sControlName = VBA.Left$(sControlName, iGpePos - 1)
        
    Else
        Index = -1
        
    End If
'    boucle
    For Each oCtrl In oForm
        If oCtrl.Name = sControlName Then
            If Index = -1 Then
                Set GetControlByName = oCtrl
                Exit For
            Else
'                groupe
                If oCtrl.Index = Index Then
                    Set GetControlByName =  oCtrl
                    Exit For
                    
                End If
                
            End If
        End If
        
    Next oCtrl
    Set oCtrl = Nothing
End Function

Compatibilité : VB6

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.