Tri automatique et listbox

Résolu
Arndt -  
 Arndt -
Bonjour,

Je cherche actuellement à créer un outil pour faciliter le tri dans une liste excel. En résumé, j'ai un certain nombre de documents (lignes) avec des critères remplis ou non (colonnes), et je voulais créer un système pour rendre la recherche plus "user friendly".

Je cherche à lancer un tri/filtrage dans ma feuille excel en selectionnant 6 critères: j'ai créé 6 listbox, en option multiselect, qui listent les options de 6 critères. Après, j'ai un bouton recherche qui est sensé enregistrer ces critères et lancer un tri en fonction. Le problème, c'est que je n'arrive pas à récupérer ces critères. Ca marchait pour des listbox à sélection unique, mais il faudrait pouvoir sélectionner plusieurs options, sinon il suffirait de cliquer sur chaque filtre...

Je souhaiterais éviter d'utiliser un userform et plutôt rester sur la même page. Comment donc recuperer les multiples critères de chaque listbox? Quelle commande utiliser ?


Un très grand merci d'avance aux âmes charitables qui voudront bien m'aider!!

Arnaud

3 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Il convient de boucler sur les lignes de chaque ListBox et de tester si elles sont sélectionnées. Attention toutefois, si aucune ligne n'est sélectionnée, on opeux avoir un message d'erreur. On va donc contourner ça. Essaye ceci :
Dim i As Byte
If ListBox1.ListIndex = -1 Then Exit Sub
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then 
        MsgBox ListBox1.List(i)
    End If
Next i
0
Arndt
 
Bonjour Pikaju,
merci pour ta réponse rapide.

Je viens d'essayer, et je recois un message d'erreur:

Runtime error 424, ""Object"" Required

On dirait qu'il ne reconnait pas ma listbox, mais je ne vois pas quoi faire. Pour info je l'avais inserée avec les outils developpeur.

Arnaud
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
ok. PadSouci!!!!
Essaye donc plutôt ceci : ADAPTE ListBox1 avec le nom d'une de tes listboxes...

Sub test()
Dim i As Byte
If Sheets("Feuil1").ListBox1.ListIndex = -1 Then Exit Sub
For i = 0 To Sheets("Feuil1").ListBox1.ListCount - 1
    If Sheets("Feuil1").ListBox1.Selected(i) = True Then
        MsgBox Sheets("Feuil1").ListBox1.List(i)
    End If
Next i
End Sub
0
Arndt
 
Ach soooo! c'était pas très compliqué pourtant!
Merci beaucoup Pikaju, me reste plus qu'a restocker les valeurs sous formes de critères pour mes tris et c'est bon!
Bonne journée, merci encore!
0