Récupération d'un tri sur excel dans un controle Listbox. Au SEcouuuuuuuuuuur

Résolu
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013 - 28 oct. 2008 à 20:48
DidierLoche Messages postés 33 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008 - 29 oct. 2008 à 12:21
Bonjour à toutes et tous,

Je souhaite récuperer dans une listbox le résultat d'un tri fait sur excel

Voici ce que j'ai imaginé :

Dim MaPlage As Range
    Columns("AV:AV").Select                             
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="1"
    Set MaPlage = Worksheets("Atlantique").AutoFilter.Range
    
    ListBox1.List = MaPlage

cela me renvoi l'erreur suivante à la ligne 5 :
Impossible de définir la propriété liste, index de table de  propriété non valide

Si c'est Tout Pas Bon je suis preneur de solutions. Pouvez vous m'aider, cela serait très très sympa
Merci d'avance

1 réponse

DidierLoche Messages postés 33 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008 1
29 oct. 2008 à 12:21
Bonjour,

Tout d'abord, où est placé ta listbox ? dans un userform ou dans une feuille Excel ?
Si elle est dans une feuille Excel, tu dois utiliser
Worksheets("toto").ListBox1.ListFillRange = plage où plage est un string de type "A1:A10"
Pour que ton filtre marche, le mieux de créer une zone dans ta feuille Excel qui est le résultat de ton filtre. Tu remplis cette zone comme ceci :
Sub maj_listbox()
Dim li As Integer, li_out As Integer
' les données sources sont dans la colonne A
li = 2
li_out = 1
Do While Cells(li, 1) <> ""
    If Cells(li, 1) = 1 Then  ' filtre à customiser
        Cells(li_out, 2) = Cells(li, 1)
        li_out = li_out + 1
    End If
    li = li + 1
Loop



Worksheets(1).ListBox1.ListFillRange = "B1:B" & li_out




End Sub







Si ta listbox est dans un userform, pas besoin de créer une plage dans la feuille Excel. Ceci devrait suffire :
Sub maj_listbox()
Dim li As Integer
' les données sources sont dans la colonne A
UserForm1.ListBox1.Clear
li = 2
Do While Cells(li, 1) <> ""
    If Cells(li, 1) = 1 Then  ' filtre à customiser
        UserForm1.ListBox1.AddItem Cells(li, 1)
    End If
    li = li + 1
Loop
UserForm1.Show



End Sub


Didier
3
Rejoignez-nous