{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 !)
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas