Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colonne

jojo2006

XLDnaute Occasionnel
Bonjour à tous,

voila je souhaiterai alimenter une liste box à partir d'une feuille excel.

je voudrais que ma liste box ait une entête sur les colonnes (colonne heads= True) et ajouter des titres à ces colonnes (je n'ai pas trouvé comment).


Ensuite je voudrais alimenter ma listbox en faisant une boucle. j'ai testé la boucle ci dessous mais j'ai une erreur d'exécution.
erreur 381 impossible de définir la propriété list ???

Code:
UserForm2.ListBox1.Clear

For i = 0 To 10
UserForm2.ListBox1.List(i, 1) = Sheets("feuil").Cells(i + 1, 1).Value
UserForm2.ListBox1.List(i, 2) = Sheets("feuil").Cells(i + 1, 3).Value
Next i


Je ne comprend pas ce qui se passe ?

si je parviens à alimenter ma listbox j'aimerai aussi savoir s'il est possible qu'en appuyant sur une colonne d'entête un tri se fasse automatiquement par ordre alphabétique ? Je ne sais pas si cela doit être codé ou si la listbox le fait automatiquement.

Si vous avez des pistes pour que je puisse avançer ça serait sympa de me dire comment.

Je vous remercie d'avance

jojo
 

jojo2006

XLDnaute Occasionnel
Re : Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colon

bonjour boisgontier,

merci beaucoup pour ton fichier !! Par contre peux tu me dire si ton code ci dessous "rempli" la liste box.

Private Sub UserForm_Initialize()
With Sheets("TriListBox")
Me.ListBox1.List = .Range("A2:C" & .[A65000].End(xlUp).Row).Value
End With
End Sub


Car moi je souhaite le faire d'une autre manière car les colonnes de ma listbox ne correspondent pas forcément aux colonne de ma feuille. Donc je souhaiterai connaitre la syntaxe exacte pour remplir ma listbox .

comme ci dessous mais il y a quelque chose qui cloche ! A moins que ma listbox soit mal définie !?

UserForm2.ListBox1.Clear

For i = 0 To 10
UserForm2.ListBox1.List(i, 1) = Sheets("feuil").Cells(i + 1, 1).Value
UserForm2.ListBox1.List(i, 2) = Sheets("feuil").Cells(i + 1, 3).Value
Next i

Merci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colon

Bonjour,

je voudrais que ma liste box ait une entête sur les colonnes (colonne heads= True) et ajouter des titres à ces colonnes (je n'ai pas trouvé comment).

petite info au passage, pour que cela fonctionne il faut que la listbox soit alimentée par la propriété "rowsource"l

bon après midi
@+
 

jojo2006

XLDnaute Occasionnel
Re : Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colon

Bonjour Pierrot,

Bon j'ai essayé
UserForm2.ListBox1.RowSource = Sheets("feuil").Cells(i, 3).value

et

UserForm2.ListBox1.RowSource = Sheets("feuil").Cells(i, 3)

ça ne marche pas !

En fait je voudrais alimenter pas forçément toute une plage de cellule.

Mais par exemple

colonne 1 list box = Colonne 5 feuille excel
colonne 2 list box = Colonne 8 feuille excel
colonne 3 list box = Colonne 11 feuille excel
colonne 4 list box = Colonne 25 feuille excel

Voila en plus j'alimente ma listbox à partir d'une feuille excel filtrée. (Je travaille avec la propriété hidden pour savoir si la ligne est cachée ou non)


Merci encore pour votre aide
 

job75

XLDnaute Barbatruc
Re : Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colon

Bonjour,

Code:
UserForm2.ListBox1.RowSource = "Feuil1!A1:C11"
La listBox doit avoir 3 colonnes.

Donnez une largeur nulle à la 2ème colonne pour la masquer (si nécessaire).

A+
 

jojo2006

XLDnaute Occasionnel
Re : Alimenter une listbox à partir d'une feuille puis filtrer avec l'entête de colon

Merci job pour ta réponse.

Je ne suis pas sûr que cela réponde à mon problème ( mais c'est surement moi qui maitrise mal ta proposition)

Sinon je pense alimenter ma listbox en passant par un tableau() ça sera peut être plus simple (enfin pour moi)

Le souci c'est que si mon tableau change souvent est ce que la mémoire ne va pas saturé ? en fait je compte déclarer mon tableau à chaque fois que ma listbox se mets à jour ( sans quitter le userform)

Dois je vider de la mémoire ou faire quelque chose d'autre au niveau de ma variable tableau ?

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 075
Messages
2 085 080
Membres
102 772
dernier inscrit
bluetesteur