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

Résolu
Signaler
Messages postés
91
Date d'inscription
mardi 8 avril 2003
Statut
Membre
Dernière intervention
15 mars 2013
-
Messages postés
33
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2008
-
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

Messages postés
33
Date d'inscription
dimanche 26 octobre 2008
Statut
Membre
Dernière intervention
25 novembre 2008
1
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