Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[VBA] filtre avec plusieurs choix

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

guiguigui69008

XLDnaute Nouveau
Bonjour, Débutant en programmation, et n'ayant pas envie d'en faire mon métier, je créé des macro a partir de long fichiers excel, afin de créer des documents de synthèse exploitable par mes collègues.

Explication:

J'ai une liste de pièces dans mon stock, chaque pièce a une référence.
dans cette liste, je souhaite extraire une liste de certaine pièce seulement. Ces pièces sont définit.
Mes colonnes sont triées.
Mon objectif est donc de créer un formulaire, ou je coche les pièces dont je veux voir apparaitre la synthèse des stock. jusque la, pas de problème.

ma méthode était la suivante : a chaque nom de pièce dans le formulaire correspond plusieurs variable auquel j'ai attribué mes références de pièces.
Donc selon le nombre de case que je coche, je veux filtré mon tableau pour ne voir apparaitre que les pièce qui m'intéresse ( je coche la case, qui active des variable, ces variables sont des numéro qui correspondent a mes référence de pièce, ensuite je filtre avec ces références dans ma colonne référence)
Problème: il ne me les affiches pas sous forme de liste, il les affiche un par un mais les efface.

Voila mon code pour la check box dans laquelle je fais mes choix.
j'aurais voulu mettre un fichier exemple, mais la confidentialité dans mon entreprise m'en empeche...

Voila, je sais pas si vous avez compris. j'espère que oui, parce que ca fait 2jours complet que je suis dessus et que ca marche pas.

Si vous avez des questions n'hésitez pas.

Ou si vous avez d'autre idée pour faire ce que je souhaite faire...
 
Re : [VBA] filtre avec plusieurs choix

Afin que vous puissiez mieux comprendre mon problème, et que je puisse enfin me sortir de cette galère, je vous ai fait un fichier type qui reprend mon problème en pièce jointes, le code n'est pas tout a fait le même mais c'est la même chose en plus simple.

Comme vous pourrez le voir, quand on clique sur le bouton "chercher les stock" un formulaire apparait, je voudrais que lorsque je coche une case, seule les pièces qui appartiennent au groupe apparaissent, pareil si je choisis plusieurs groupe.

Merci de votre aide
 

Pièces jointes

Re : [VBA] filtre avec plusieurs choix

Bonjour,
pas facile de faire un filtre avec plus de 2 critères.
Ici sur ton fichier en retour j'utilise la colonne K pour mettre des 1 si besoin et filtre sur cette colonne.
Peut être cette colonne est déja utilisée donc dans ce cas il faudra rectifier en macro pour écrire et filtrer dans une colonne qui ne sert pas.
Bon test
Plus besoin des macros en checkbox une seule pour le bouton...que voici
Code:
Sub CommandButtonok_Click()
[K:K].ClearContents 'on efface col K
Range("$A$5:$P$1043").AutoFilter  ' filtre à 0
Dim t() As Integer
Dim k%, i%, b%
If CheckBox1.Value = True Then
ReDim t(2)
i = i + 1: t(i) = 22: i = i + 1: t(i) = 47
End If
If CheckBox2.Value = True Then
ReDim Preserve t(i + 3)
i = i + 1: t(i) = 143: i = i + 1: t(i) = 163: i = i + 1: t(i) = 301
End If
If CheckBox3.Value = True Then
ReDim Preserve t(i + 2)
i = i + 1: t(i) = 401: i = i + 1: t(i) = 402
End If
If CheckBox4.Value = True Then
ReDim Preserve t(i + 3)
i = i + 1: t(i) = 407: i = i + 1: t(i) = 426: i = i + 1: t(i) = 462
End If
If CheckBox5.Value = True Then
ReDim Preserve t(i + 2)
i = i + 1: t(i) = 223: i = i + 1: t(i) = 314
End If
'cells(ligne,colonne) "11" est col K
For k = 5 To Range("A" & Rows.Count).End(3).Row
    For b = 1 To i
    If Cells(k, 1) = t(b) Then Cells(k, 11) = 1: Exit For 'on met 1 en col K
    Next
Next
'field:=11 est col K
Range("$A$5:$P$1043").AutoFilter Field:=11, Criteria1:="=1"
    Unload UserForm1
    
End Sub
Bruno
 

Pièces jointes

Re : [VBA] filtre avec plusieurs choix

Merci de ton code youky, je l'ai essayé il marche très bien, mais on m'a donné une autre solution :

La méthode "Array" que j'utilisais, ne marche qu'avec des chaines de caractères....

C'est pour cela que dans mon cas ça ne marchait pas...
J'ai donc changé toutes mes variables en chaines de caractère, mis des guillemets quand je leur attribue une valeur, un opérateur a la fin de la méthode "Array" et le tour était joué!!!!!

Voila mon programme si tu veux regarder!

Merci encore!!!
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
177
Réponses
5
Affichages
232
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
162
Réponses
4
Affichages
243
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…