Bonjour à tous,

Je suis entrain de développer une application vba pour une entreprise et j'ai besoin de votre aide.

Je dois effectuer des actions en fonction du userform et de la listbox contenu dessus , il faut donc parcourir mes userform et les contrôles qui s'y trouvent , mon code ressemble à ceci :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Function parcours(nomUserform As Variant, nomListbox As Variant)
    Dim ctrl As Control
    Dim usef As VBComponent
 
        For Each usef In ThisWorkbook.VBProject.VBComponents
            'S'il s'agit d'un UserForm
            If usef.Type = 3 Then
                If usef.Name = nomUserform Then
                    For Each ctrl In usef.Controls <== ERREUR
                     If ctrl.Name = nomListbox Then
                        ACTION
                     End If
                    Next ctrl
                End If
            End If
        Next usef
 
 End Function
Le problème est que .control n'est pas une procédure de VBComponent et je ne connais pas un autre moyen de parcourir les userforms , j'ai bien essayé avec ma propre collection , mais il faut la parcourir avec une variable de type object , dont .control n'est pas une procédure non plus. J'ai essayé pas mal de code qui ne fonctionnent pas, je suis complétement bloqué.

Si quelqu'un a une idée je suis volontier preneur.

Merci d'avance