1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Option Explicit
Private Sub Command1_Click()
MsgBox CStr(lngftn_ControlCount(Me, "TextBox"))
End Sub
Public Function lngftn_ControlCount(objForm_E As Form, strCtrlType_E As String) As Long
On Error GoTo lngftn_ControlCount_Error
Dim objCtrl As Object 'contrôle en cours de traitement
Dim lngCtrlIndex As Long 'index du contrôle
lngftn_ControlCount = 0
'--- pour tous les contrôles du formulaire ---
For lngCtrlIndex = 0 To (objForm_E.Controls.Count - 1)
'instanciation de l'objet contrôle
Set objCtrl = objForm_E.Controls(lngCtrlIndex)
'récupération du type (TextBox, Label, CommandButton, etc.) et comparaison au type passé en paramètre
If TypeName(objCtrl) = strCtrlType_E Then
lngftn_ControlCount = lngftn_ControlCount + 1
End If
Next lngCtrlIndex
'gestion des erreurs
lngftn_ControlCount_Error:
If Err Then
MsgBox CStr(Err.Number) & vbCrLf & Err.Description
lngftn_ControlCount = -1
End If
End Function |
Partager