A voir également:
- Problèmes Excel avec VBA
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
- Excel compter cellule couleur sans vba - Guide
4 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 716
13 mai 2008 à 23:24
13 mai 2008 à 23:24
bonjour
J'ai pas tout compris ce que tu nous as fait car il me semble que tes modules ne servent pas beaucoup...
Avec ceci tu obtiens ce que tu cherches
J'ai pas tout compris ce que tu nous as fait car il me semble que tes modules ne servent pas beaucoup...
Avec ceci tu obtiens ce que tu cherches
Sub filtre() Sheets("Base de données").Range("a1:c1").AutoFilter Field:=1, _ Criteria1:=Sheets("Consultation").Range("C4").Value Sheets("Base de données").Activate End Sub
Bonjour,
Pensez vous qu'il y aurait une technique permettant de créer des noms dynamiques dans une liste déroulante, ces noms dynamiques serait faits à partir de la base de données, mais est-il possible pas exemple d'éviter les doublons, car dans mon cas, vu que en entrée il y aura certaines catégories, j'ai pas envie de trouver un menu déroulant avec 200 fois la même catégorie dedans !!!
Merci ;)
Pensez vous qu'il y aurait une technique permettant de créer des noms dynamiques dans une liste déroulante, ces noms dynamiques serait faits à partir de la base de données, mais est-il possible pas exemple d'éviter les doublons, car dans mon cas, vu que en entrée il y aura certaines catégories, j'ai pas envie de trouver un menu déroulant avec 200 fois la même catégorie dedans !!!
Merci ;)
Bonjour !
Merci ça a l'air de marcher, du moins un peu mieux qu'avant.
Seulement quand dans coonsultation je mets aucun critères, le tri se fait sur personnalisé donc il n'y a rien qui s'affiche,
alors que je voudrais quand quand un critère de sélection est vide, le tri se fasse sur "All" pour tout voir !!!
De plus j'ai peur que si un critère n'est pas associé à un autre dans la BDD, ça bug un peu et ça mette aussi sur "personnaliser" !
Pour le tri sur "All", j'ai rajouté :
If Sheets("Consultation").Range("C4").Value = 0 Then Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria1:="All"
Faut-il que je mette Criteria2 pour le "All" ?
FRaut-il que je répète ton code pour chaque critère et après faire un sub qui les appelles tous à la suite ou faut-il les faire tous en 1 ?
Merci ;)
Merci ça a l'air de marcher, du moins un peu mieux qu'avant.
Seulement quand dans coonsultation je mets aucun critères, le tri se fait sur personnalisé donc il n'y a rien qui s'affiche,
alors que je voudrais quand quand un critère de sélection est vide, le tri se fasse sur "All" pour tout voir !!!
De plus j'ai peur que si un critère n'est pas associé à un autre dans la BDD, ça bug un peu et ça mette aussi sur "personnaliser" !
Pour le tri sur "All", j'ai rajouté :
If Sheets("Consultation").Range("C4").Value = 0 Then Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria1:="All"
Faut-il que je mette Criteria2 pour le "All" ?
FRaut-il que je répète ton code pour chaque critère et après faire un sub qui les appelles tous à la suite ou faut-il les faire tous en 1 ?
Merci ;)
J'ai parlé trop vite !
J'ai appliqué mon truc à tous les filtres, les cases vides ne posent plus de probs !!!
Le seul problème qui reste, et là je ne vois vraiment pas quoi faire, c'est pour quand les critères ne correspondent pas, soit mettre un message d'erreur en disant qu'il y a une erreur (certains critères ne correspondent pas), soit laisser les filtres sur "All" avec pourquoi pas un message quand même !
Je bloque là dessus !!!
En tous cas merci beaucoup pour ton aide c'est très bien ça marche nickel mise à part ce problème ;)
Mais au pire je pourrais réussir à bidouiller en disant que si un filtre se met sur personnaliser (le bug récurrent), alors faut réessayer la saisie.
Voici mon code actuel. C'est peut être lourd mais je ne sais pas si je pouvait condenser en 1 en faisant style Sheets("Base de données").Range("a1:c1").AutoFilter Field:=1, _
Criteria1:=Sheets("Consultation").Range("C4:c6").Value
Mon code :
Sub filtre1()
Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria1:=Sheets("Consultation").Range("C4").Value
If Sheets("Consultation").Range("C4").Value = 0 Then Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre2()
Sheets("Base de données").Range("a2").AutoFilter Field:=2, _
Criteria1:=Sheets("Consultation").Range("C5").Value
If Sheets("Consultation").Range("C5").Value = 0 Then Sheets("Base de données").Range("a2").AutoFilter Field:=2, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre3()
Sheets("Base de données").Range("a3").AutoFilter Field:=3, _
Criteria1:=Sheets("Consultation").Range("C6").Value
If Sheets("Consultation").Range("C6").Value = 0 Then Sheets("Base de données").Range("a3").AutoFilter Field:=3, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre4()
Sheets("Base de données").Range("a4").AutoFilter Field:=4, _
Criteria1:=Sheets("Consultation").Range("C7").Value
If Sheets("Consultation").Range("C7").Value = 0 Then Sheets("Base de données").Range("a4").AutoFilter Field:=4, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre5()
Sheets("Base de données").Range("a5").AutoFilter Field:=5, _
Criteria1:=Sheets("Consultation").Range("C8").Value
If Sheets("Consultation").Range("C8").Value = 0 Then Sheets("Base de données").Range("a5").AutoFilter Field:=5, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre6()
Sheets("Base de données").Range("a6").AutoFilter Field:=6, _
Criteria1:=Sheets("Consultation").Range("C9").Value
If Sheets("Consultation").Range("C9").Value = 0 Then Sheets("Base de données").Range("a6").AutoFilter Field:=6, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre7()
Sheets("Base de données").Range("a7").AutoFilter Field:=7, _
Criteria1:=Sheets("Consultation").Range("C10").Value
If Sheets("Consultation").Range("C10").Value = 0 Then Sheets("Base de données").Range("a7").AutoFilter Field:=7, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre8()
Sheets("Base de données").Range("a8").AutoFilter Field:=8, _
Criteria1:=Sheets("Consultation").Range("C11").Value
If Sheets("Consultation").Range("C11").Value = 0 Then Sheets("Base de données").Range("a8").AutoFilter Field:=8, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre9()
Sheets("Base de données").Range("a9").AutoFilter Field:=9, _
Criteria1:=Sheets("Consultation").Range("C12").Value
If Sheets("Consultation").Range("C12").Value = 0 Then Sheets("Base de données").Range("a9").AutoFilter Field:=9, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre10()
Sheets("Base de données").Range("a10").AutoFilter Field:=10, _
Criteria1:=Sheets("Consultation").Range("C13").Value
If Sheets("Consultation").Range("C13").Value = 0 Then Sheets("Base de données").Range("a10").AutoFilter Field:=10, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre11()
Sheets("Base de données").Range("a11").AutoFilter Field:=11, _
Criteria1:=Sheets("Consultation").Range("C14").Value
If Sheets("Consultation").Range("C14").Value = 0 Then Sheets("Base de données").Range("a11").AutoFilter Field:=11, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre12()
Sheets("Base de données").Range("a12").AutoFilter Field:=12, _
Criteria1:=Sheets("Consultation").Range("C15").Value
If Sheets("Consultation").Range("C15").Value = 0 Then Sheets("Base de données").Range("a12").AutoFilter Field:=12, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre()
Call filtre1
Call filtre2
Call filtre3
Call filtre4
Call filtre5
Call filtre6
Call filtre7
Call filtre8
Call filtre9
Call filtre10
Call filtre11
Call filtre12
End Sub
J'ai appliqué mon truc à tous les filtres, les cases vides ne posent plus de probs !!!
Le seul problème qui reste, et là je ne vois vraiment pas quoi faire, c'est pour quand les critères ne correspondent pas, soit mettre un message d'erreur en disant qu'il y a une erreur (certains critères ne correspondent pas), soit laisser les filtres sur "All" avec pourquoi pas un message quand même !
Je bloque là dessus !!!
En tous cas merci beaucoup pour ton aide c'est très bien ça marche nickel mise à part ce problème ;)
Mais au pire je pourrais réussir à bidouiller en disant que si un filtre se met sur personnaliser (le bug récurrent), alors faut réessayer la saisie.
Voici mon code actuel. C'est peut être lourd mais je ne sais pas si je pouvait condenser en 1 en faisant style Sheets("Base de données").Range("a1:c1").AutoFilter Field:=1, _
Criteria1:=Sheets("Consultation").Range("C4:c6").Value
Mon code :
Sub filtre1()
Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria1:=Sheets("Consultation").Range("C4").Value
If Sheets("Consultation").Range("C4").Value = 0 Then Sheets("Base de données").Range("a1").AutoFilter Field:=1, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre2()
Sheets("Base de données").Range("a2").AutoFilter Field:=2, _
Criteria1:=Sheets("Consultation").Range("C5").Value
If Sheets("Consultation").Range("C5").Value = 0 Then Sheets("Base de données").Range("a2").AutoFilter Field:=2, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre3()
Sheets("Base de données").Range("a3").AutoFilter Field:=3, _
Criteria1:=Sheets("Consultation").Range("C6").Value
If Sheets("Consultation").Range("C6").Value = 0 Then Sheets("Base de données").Range("a3").AutoFilter Field:=3, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre4()
Sheets("Base de données").Range("a4").AutoFilter Field:=4, _
Criteria1:=Sheets("Consultation").Range("C7").Value
If Sheets("Consultation").Range("C7").Value = 0 Then Sheets("Base de données").Range("a4").AutoFilter Field:=4, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre5()
Sheets("Base de données").Range("a5").AutoFilter Field:=5, _
Criteria1:=Sheets("Consultation").Range("C8").Value
If Sheets("Consultation").Range("C8").Value = 0 Then Sheets("Base de données").Range("a5").AutoFilter Field:=5, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre6()
Sheets("Base de données").Range("a6").AutoFilter Field:=6, _
Criteria1:=Sheets("Consultation").Range("C9").Value
If Sheets("Consultation").Range("C9").Value = 0 Then Sheets("Base de données").Range("a6").AutoFilter Field:=6, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre7()
Sheets("Base de données").Range("a7").AutoFilter Field:=7, _
Criteria1:=Sheets("Consultation").Range("C10").Value
If Sheets("Consultation").Range("C10").Value = 0 Then Sheets("Base de données").Range("a7").AutoFilter Field:=7, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre8()
Sheets("Base de données").Range("a8").AutoFilter Field:=8, _
Criteria1:=Sheets("Consultation").Range("C11").Value
If Sheets("Consultation").Range("C11").Value = 0 Then Sheets("Base de données").Range("a8").AutoFilter Field:=8, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre9()
Sheets("Base de données").Range("a9").AutoFilter Field:=9, _
Criteria1:=Sheets("Consultation").Range("C12").Value
If Sheets("Consultation").Range("C12").Value = 0 Then Sheets("Base de données").Range("a9").AutoFilter Field:=9, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre10()
Sheets("Base de données").Range("a10").AutoFilter Field:=10, _
Criteria1:=Sheets("Consultation").Range("C13").Value
If Sheets("Consultation").Range("C13").Value = 0 Then Sheets("Base de données").Range("a10").AutoFilter Field:=10, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre11()
Sheets("Base de données").Range("a11").AutoFilter Field:=11, _
Criteria1:=Sheets("Consultation").Range("C14").Value
If Sheets("Consultation").Range("C14").Value = 0 Then Sheets("Base de données").Range("a11").AutoFilter Field:=11, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre12()
Sheets("Base de données").Range("a12").AutoFilter Field:=12, _
Criteria1:=Sheets("Consultation").Range("C15").Value
If Sheets("Consultation").Range("C15").Value = 0 Then Sheets("Base de données").Range("a12").AutoFilter Field:=12, _
Criteria2:="All"
Sheets("Base de données").Activate
End Sub
Sub filtre()
Call filtre1
Call filtre2
Call filtre3
Call filtre4
Call filtre5
Call filtre6
Call filtre7
Call filtre8
Call filtre9
Call filtre10
Call filtre11
Call filtre12
End Sub
13 mai 2008 à 23:56
Je vais essayer ça demain, j'espère que c'est ce qu'il me faut.
Est-ce que ce que tu m'a donné je peux l'appliquer à plusieurs critères de tri, par exemple si je veux trier avec 2 critères, avec un seul, avec 3 autres ?
J'essaye d'être le plus clair possible désolé !!!
;)