Bonjour,

J'ai une boite de dialogue contenant des contrôles ListBox que je voudrais remplir automatiquement. Comme il y aura sans doute un paquet de contrôles à remplir, j'aimerais confier le remplissage à une procédure à part, mais je bloque sur le formalisme à appliquer au niveau des arguments, attendu que le remplissage doit se faire via les propriétés d'une classe personnalisée.

J'ai essayé plusieurs choses, mais sans succès, voici le code de la procédure que j'ai tenté de mettre en place au départ

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
19
20
21
Public Sub RemplListBox(ByRef Liste As MSForms.ListBox, ByRef Coll As Collection, ByRef Champ As Variant)
 
Dim ItemExiste As Boolean 'Indicateur permettant de savoir si l'élément fait déjà partie de la ListBox
For Each Item In Coll 'On parcourt la collection
    If Liste.ListCount = 0 Then 'On vérifie si le ListBox est vide
        Liste.AddItem (Item(1).Champ) 'Si oui, on recopie le premier enregistrement
    Else
        ItemExiste = False 'On met à 0 le flag
        For i = 0 To Liste.ListCount - 1 'On parcourt le ListBox
            If Item.Champ = Liste.List(i) Then 'Si l'item est déja présent dans le ListBox
                ItemExiste = True 'On met à jour le flag
            Else
            End If
        Next i
        If ItemExiste = True Then 'Si l'item a été trouvé, on ne fait rien
        Else
            Liste.AddItem (Item.Champ) 'Sinon, on rajoute l'item au ListBox
        End If
    End If
Next Item
End Sub
J'obtiens un message d'erreur 438 : propriété ou methode non géré par cet objet, ça bloque sur la ligne 6.

Quelqu'un peut m'aider?

Merci d'avance