Problème de filtres

Lauwn

XLDnaute Nouveau
Bonjour tout le monde,

J'ai un petit souci de filtres sur mon code. J'ai créé un userform où je voudrais pouvoir afficher des articles en fonction d'une catégorie sélectionnée (jusque là pas de problème).
Seconde problématique : n'afficher que les articles pour lesquels telle valeur est inférieure à telle autre valeur... Ici non plus, pas de difficulté.

Mon problème vient du fait que malgré le filtre posé, excel ne tient pas compte de celui-ci lors de l'affichage de mes articles (dans une listbox). Par exemple, si je prends 3 catégories d'articles (mécanique, électrique et informatique) et que je sélectionne la première, je n'ai pas de problème. Si je sélectionne la seconde, il va m'afficher les catégories mécanique et électrique et si je sélectionne les 3, il va opérer pour l'ensemble des catégories.

Je mets le bout de code concerné ci dessous :

If Worksheets("Feuil1").AutoFilterMode Then ActiveSheet.AutoFilterMode = False
If ComboBox1.Value = "Mécanique" Then
'Création d'un filtre sur le tableau
Range("A1:K1").Select
'On filtre les valeurs du groupe en fonction de la catégorie sélectionnée
Selection.AutoFilter Field:=1, Criteria1:="Mécanique"
ListBox1.Clear
For variable = 1 To Range("A65536").End(xlUp).Row 'Pour chaque ligne du tableau ou le stock réel est inférieur au stock mini
If Cells(variable, 10) < Cells(variable, 9) Then
ListBox1.AddItem Cells(variable, 3) 'On ajoute l'article concerné à la listbox
End If
Next variable
End If


Ce morceau de code ne concerne que la catégorie mécanique, j'évite de mettre les 2 autres boucles afin d'éviter les répétitions (le code est strictement le même dans les autres boucles).

Si besoin, je pourrai éventuellement créer un fichier excel à titre d'exemple, mais je voudrais déjà savoir si mon filtre est placé au bon endroit. J'ai déjà rencontré ce problème à cause d'une boucle mal placée, mais là, j'avoue que je sèche...

Merci d'avance ! :)

Une petite question supplémentaire : à la désactivation de mon code (première ligne), les lignes de cellules de mon tableau restent "filtrées" (lignes de cellules réduites à redimensionner à la main). J'ai essayé d'utiliser "selection autofilter" à la place, mais vba me ressort l'erreur "la methode autofilter de la classe range a échoué"... Si quelqu'un a un moyen quelconque de contourner le problème, je suis preneur ! :p
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Problème de filtres

Bonsoir


Essayes soit l'un, soit l'autre
If Worksheets("Feuil1").AutoFilterMode Then Worksheets("Feuil1").AutoFilterMode = False
ou
If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False

Cela change t-il quelque chose?

PS: Ce serait plus facile pour faire des tests de disposer d'un fichier exemple concocté par tes soins
Mais cela, tu le sais déjà, si tu as lu la charte du forum ;)
 

Lauwn

XLDnaute Nouveau
Re : Problème de filtres

J'avais déjà pensé à poster un exemple sur un fichier Excel, mais je n'avais pas eu le courage de m'en occuper hier soir, vu l'heure tardive. Du coup, j'ai créé un petit userform qui reprend ce que je cherche à faire. Je joins le fichier à mon post.

Pour la solution que tu m'as proposé, aucune des deux ne change la donne, le problème reste apparent (au moment où on clique sur le bouton fermer après avoir sélectionné un filtre).

Le principe du userform est le suivant :
J'ai des éléments dans ma listbox. Je veux pouvoir les filtrer par catégorie à l'aide d'une combobox. Les autres éléments servent simplement à afficher les informations relatives aux éléments sélectionnés.
 

Pièces jointes

  • Classeur1.xlsm
    22.1 KB · Affichages: 44
  • Classeur1.xlsm
    22.1 KB · Affichages: 46
  • Classeur1.xlsm
    22.1 KB · Affichages: 49

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 438
Membres
103 209
dernier inscrit
MIKA33260