{VBA} Remplir une ListBox par appel à une Function

F22Raptor

XLDnaute Occasionnel
Hello
Pour prévoir une fonction que je mutualiserai dans un futur classeur, je souhaite remplir la ListBox de mon formulaire par appel à une Function, avec en paramètre le nom de la ListBox.

Dans l'initialize de mon formulaire, j'ai donc : Call Remplissage(ListBox1)

Et en Function, j'ai :
Function Remplissage(Boite As ListBox)
Me.Boite.AddItem "CA MARCHE !!!"
End Function

Problème : Erreur d'Exec 13 - Incompatibilité de type

Une idée nocturne ?

(fichier joint)
 

Fichiers joints

tatiak

XLDnaute Barbatruc
Re : {VBA} Remplir une ListBox par appel à une Function

Hello,
A la louche, j'écrirai plutôt :

Call Remplissage("ListBox1")

Function Remplissage(Boite As string)
Me.controls(Boite).AddItem "CA MARCHE !!!"
End Function

:) Pierre
 

Dranreb

XLDnaute Barbatruc
Re : {VBA} Remplir une ListBox par appel à une Function

Bonsoir.

J'ai fait plusieurs modif, je ne sais plus laquelle est déterminante pour que ça marche.

Module1 :
VB:
Option Explicit

Sub lancement()
UserForm1.Show
End Sub

Sub Remplissage(ByVal Boite As MSForms.ListBox)
Boite.AddItem "CA MARCHE !!!"
End Sub
Userform1 :
VB:
Option Explicit

Private Sub UserForm_Initialize()
Remplissage Me.ListBox1
End  Sub
Mais dans la mesure où on peut affecter un tableau à la propriété List d'un contrôle, plutôt que de faire des AddItem, ça ne me parait pas très utile ni simplificateur de "sortir" son initialisation de l'Userform. À priori…

Edit: le plus grave était probablement "Utilisation incorrecte du mot clé Me" dans un module ordinaire.
 
Dernière édition:

F22Raptor

XLDnaute Occasionnel
Re : {VBA} Remplir une ListBox par appel à une Function

Cool Dranreb ! C'est visiblement le MSForms qui manquait
(je n'aurais jamais eu l'idée tout seul ! Merci !)
 

Haut Bas