Une listbox d'un Usf comme variable

Bonjour à tous,

Une petite question toute bête, comment puis je déclarer une listbox comme variable ?

Imaginons que j'ai une procédure pour afficher une listbox et que j'ai trois listbox dans un usf. Pour éviter de copier la procédure trois fois je veux mettre ma listbox comme variable. Comment la déclarer ?

Option Explicit

'Dans l'exemple ici il n'y a qu'une listbox

Private Sub UserForm_Initialize()

Me.ListBox1.Visible = False

End Sub

Private Sub CommandButton1_Click()

Dim lbox

Set lbox = Me.ListBox1.Object

Call affiche(lbox)

End Sub

Sub affiche(lbox As ListBox)

lbox.Visible = True

End Sub

J'ai toujours une erreur d'incompatibilité by ref, ou bien Me.Listbox1 = null

Je me doute donc que c'est que je ne déclare pas bien ma variable mais je n'arrive pas à trouver comment le faire de cette façon. J'ai bien vu que la procédure était différente entre le fait que la listbox soit dans une feuille ou dans un usf mais je tourne en rond ...

Une piste pour continuer mes test ? :)

D'avance merci

11lboxvariable.xlsm (17.15 Ko)

Bonjour,

Comme ceci

Dim nom_listbox()

Private Sub UserForm_Initialize()

    nom_listbox = Array("nom1", "nom2", "nom3")

End Sub

Private Sub CommandButton1_Click()
    Dim lbox As Control

    Set lbox = Me.Controls(nom_lisbox(i))

    Call affiche(lbox)

End Sub

Bonjour Thev,

Merci pour ton retour, il faut donc la déclarer comme un contrôle, j'ai réussi dans mon fichier exemple.

Je vais tester dans mon vrai fichier (qui n'est pas simplement un problème d'affichage, je veux mettre des listbox comme variable pour d'autres opérations).

Bon dimanche

Rechercher des sujets similaires à "listbox usf comme variable"