bonjour a tous
en aidant un forumeur je me suis apercu qu' avec une plage de cellule il y avait un autre moyen de remplir une listbox ou combobox que d'utiliser des variable de type tableau(item unique)ou meme le dictionnaire avec la reference microsoft scripting runtime"
avec cette solution nous allons utiliser tout simplement une variable de type string que l'on va comparer a la valeur de chaque cellule avec la fonction "instr" tout betement
j'en ai fait une petite fonction
voila le code de la fonction:
et voila comment on va l'appeler de l'userform
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Function mode_remplissage2(usf As Object, feuille As Variant, listo As Object, plage) dim phrase as string usf.Controls(listo.Name).Clear For Each cel In Sheets(feuille).Range(plage) If InStr(phrase, cel) > 0 Then Else: usf.Controls(listo.Name).AddItem cel End If phrase = phrase & " " & cel Next phrase = "" End Function
les argument sont
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub UserForm_Activate() mode_remplissage2 Me, 1, ComboBox1, ("a2:a" & [a65000].End(xlUp).Row) End Sub
me pour l'userform
le chiffre 1 represente l'index du sheets ou se trouve la plage
veuillez noter que l'argument pour le shhets est variant et peut donc etre interprété comme un string donc a la place de 1 vous pouvez mettre le nom du sheets
ensuite vous l'avez compris le nom du control list(combobox ou listbox)
ensuite la plage de cellule a prendre en compte
voila vraiment par hazard en voulant faire un autre travail j'ai fait cette trouvaille
bonne utilisation
au plaisir
Partager