XL 2016 Création et utilisation de listbox depuis macro vba

Palolomax

XLDnaute Nouveau
Bonjour à tous,

La question que je vais poser va sûrement vous paraître vraiment bête mais voilà je ne comprends pas ce qui peut bloquer...
Je veux que l'utilisateur de mon fichier puisse, en cliquant sur un bouton, déclencher une macro qui :
- créé une listbox alimentée par des données situées dans un autre onglet,
- créé un textbox dans lequel il pourra saisir la valeur qu'il souhaite,
- actualise le contenu de la listbox en fonction de la saisie de l'utilisateur dans le textbox.
J'ai bien mon bouton qui déclenche ma macro et grâce à un contributeur de votre forum j'ai la partie "recherche intuitive" de mon histoire.
J'arrive à faire que ma macro créé ma listbox et mon textbox correctement.
Le problème est que je n'arrive pas à "utiliser" dans ma macro ces objets que je viens de créer.

Je créée les objets dans mon onglet "Formulaire"
Formulaire.Activate
Formulaire.OLEObjects.Add classtype:="Forms.ListBox.1", Left:=360, Top:=15
Formulaire.OLEObjects.Add classtype:="Forms.Textbox.1", Left:=190, Top:=40

Et je souhaite ensuite "remplir" ma listbox avec les données contenues dans mon onglet Liste_RF
ListBox1.RowSource = Liste_RF.Range("C3:C15000")
Là, c'est le drame : "Objet requis". C'est comme si excel considérait que Listbox1 n'existe pas...

Si une bonne âme a une idée de ce qui peut clocher... Merci beaucoup !
 

Palolomax

XLDnaute Nouveau
Bonjour,
Merci pour l'astuce. Malheureusement ça ne résout pas le problème.
J'ai maintenant le message "Membre de méthode ou de données introuvable" qui apparaît lors de la compilation, qui surligne ".ListBox1". Toujours comme si ma ListBox n'existait pas dans mon onglet "Formulaire"...
 

danielco

XLDnaute Accro
Je ne sais pas trop pourquoi ton code ne fonctionne pas? Celui-ci fonctionne :

VB:
Sub AidesaisieRF()

Dim Formulaire As Worksheet
Set Formulaire = Sheets("Formulaire1")
Dim Liste_RF As Worksheet
Set Liste_RF = Sheets("Liste RF")

Formulaire.Activate
Formulaire.OLEObjects.Add classtype:="Forms.ListBox.1", Left:=360, Top:=15
Formulaire.OLEObjects.Add classtype:="Forms.Textbox.1", Left:=190, Top:=40

'Formulaire.ListBox1.ListFillRange = Liste_RF.Range("C3:C15000").Address
Sheets("Formulaire1").ListBox1.ListFillRange = Liste_RF.Range("C3:C15000").Address
Call ChargeListbox(Range("C2"))

End Sub

Daniel
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16