[VBA] Problème de filtr

Résolu
Kodie31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Kodie31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je vous explique le context.

Je recois des rapports d'analyses qui sont sous la forme de fichiers Excel avec un nom du genre : "VOS 140796-IMP.xls" qui renferme des feuilles avec des numéros de lot du genre : "Lot I00450" qui sont toutes les mêmes.

Ce que j'ai fait :
- J'ai fait un bouton pour extraire les données de ces fichiers pour remplir ma BDD,
- Un autre bouton qui colorie les champs en fonction de certains criteres (BREF...)
- un bouton qui analyse et note une "X" dans la colone 20 de la BDD

Je dois maintenant faire un bouton qui envoie ce qu'on veut par mail via outlook... ca aussi j'y arrive.

Par contre : pour ce dernier bouton, j'ai un principal probleme. En fait j'utilise un useform composé de 2 ComboBox, 2 boutons de commande associés, 1 ListBox et un bouton de commande en bas qui valide tout.

Ce que je veux faire :
- 2 facons de remplir la ListBox :
- le premier combobox dans lequel on choisit les rapports par fichiers ("VOS 140796-IMP.xls") et qui remplit la ListBox avec les feuilles ("Lot I00450") qui se trouvent dans la colonne à coté.
- Le deuxième combobox dans lequel on choisit directement les feuilles ("Lot I00450")

- Après avoir permi la selection de plusieurs Items de la ListBox en même temps, je veux appliquer un filtre à ma BDD pour obtenir seulement les lignes correspondant à mes numéros de Lot ("Lot I00450"). Le but étant d'obtenir un mini-tableau que je pourrai envoyer par mail à mes fournisseurs.

C'est ICI que je bloque. En effet, je n'arrive pas à filtrer la colone à partir du premier ITEM de la ListBox, puis en fonction des suivants, MAIS tout en gardant les premiers. Autrement dit, c'est comme si à la main, je ne cochait que les cases correspondant aux items de ma ListBox, pour obtenir un tableau constitués seulement des lignes voulues. Ca ne me filtre que 1 à la fois, comme si quand je coche, l'autre se décoche.

Ai-je été clair ?


Voici le code de mon filtre : (je n'ai pas trouvé comment le baliser)

_____________________

Private Sub CommandButton4_Click()

fiats = Application.WorksheetFunction.CountA(Feuil1.Range("$D:$D"))
For tric = 1 To fiats
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then

If Sheets("Feuil1").Cells(tric, 4) = ListBox1.List(i) Then

Sheets("Feuil1").Range("A1").AutoFilter Field:=4, Criteria1:=ListBox1.List(i)

End If

End If
Next i
Next tric
End Sub

______________________


Dites moi si vous voulez tous le code


Merci d'avance

Kodie



EDIT : voilà un lien pour télécharger mon fichier... les boutons qui posent problème ont un nom explicite ^^ https://www.cjoint.com/?DGbs2fpHA93

1 réponse

Kodie31 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
c'est bon un ami a trouvé mon problème

ce sujet est donc résolu !

solution :

____________________

Dim u As String
Dim v(20) As String

fiats = Application.WorksheetFunction.CountA(Feuil1.Range("$D:$D"))
For tric = 2 To fiats
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then


If Sheets("Feuil1").Cells(tric, 4) = ListBox1.List(i) Then


v(i) = ListBox1.List(i)



Sheets("Feuil1").Range("A1").AutoFilter Field:=4, Criteria1:=v, Operator:=xlFilterValues



End If

End If
Next i
Next tric

___________________


Trop lents les gars :p (je déconne)
0