Set implique un Objet
Name est un String, pas un objet
faire simplement :
Set ObjCombo = Me.Controls(I)
pour nettoyer ton code (merci de l'avoir colorié!!!)
que contient la chaine "Objets" transmise ?
il semble que tu souhaites pouvoir cibler plusieurs comboBox.
utilises-tu bien un séparateur entre le nom de chaque combo ciblé ?
pourquoi utiliser une Function (tu ne renvoie rien)
Gosub inutile ici...
Sub ChercheControls(ByRef vF As Form, ByRef vsNames As String)
Dim i As Long
Dim o As Object
Dim oCbo As ComboBox
'# On parcoure chaque controle de la Form vF
For Each o In vF.Controls
'# Si l'itération courante porte sur un Combobox, on le traite...
If TypeOf o Is ComboBox Then
Set oCbo = o
'# Si le nom du combobox correspond a notre demande...
If InStr(1, oCbo.Name, vsNames, vbTextCompare) Then
'# On effectue un traitement particulier sur ce contrôle
For i = 0 To 40
oCbo.AddItem Str(i)
Next i
End If
End If
Next o
End Sub
Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp