Critères de filtre [Résolu]

Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 4 sept. 2006 à 11:09 - Dernière réponse :
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 6 sept. 2006 à 15:05
bonjour,

j'aimerai filtrer une colonne comportant des dates selon un mois choisi.

j'ai réussi à filtrer les dates par : 

Selection.AutoFilter field:=1, Criteria1:=TextBox1.Text

quelle est la syntaxe du Criteria1 pr filtrer un mois??

Merci pr votre aide, Achi!
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Messages postés
61
Date d'inscription
mercredi 14 janvier 2004
Dernière intervention
14 septembre 2006
- 6 sept. 2006 à 14:15
3
Merci
bonjour


il faut savoir que excel est issu d'un pays qui ne respecte pas la norme internationale qui définit les format de date.

son format de date par défaut est "mois/jour/année"

il suffit donc de donner ce format à tes date pour que cela fontionne

  Selection.AutoFilter Field:=1, Criteria1:=">=" & format(Début,"mm/dd/yyyy"), Operator:=xlAnd, _
    Criteria2:="<=" & format(Fin ,"mm/dd/yyyy")


 

Merci cs_bipou 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_bipou
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 sept. 2006 à 11:21
0
Merci
fil VBA! (modifié)
Commenter la réponse de PCPT
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 4 sept. 2006 à 12:18
0
Merci
salut PCPT,


Excuse moi mais j'ai pas compris!!


Achi!


 
Commenter la réponse de cs_Achi
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 4 sept. 2006 à 12:45
0
Merci
ta demande concerne VBA, tu avais classé ton topic en VB6. j'ai modifié.

voir en haut de fenêtre : Vous êtes ici : ...................

++
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 4 sept. 2006 à 12:50
0
Merci
re,


ok merci! dsl!


Achi!


@+
Commenter la réponse de cs_Achi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 4 sept. 2006 à 17:23
0
Merci
Salut,


Je pense que le mieux est d'y aller avec >= au 1er du mois et <
que le 1er du mois suivant (ou <= au dernier jour du mois)  si
l'année est la même

Du genre

    Dim MoisàFiltrer As Integer

    Dim Début As Date, Fin As Date

   

    MoisàFiltrer = 9  ' à modifier au besoin

   

    Début = (DateSerial(Year(Date), MoisàFiltrer,
1))          'changer
l'année au besoin

    Fin = (DateSerial(Year(Date), MoisàFiltrer + 1, 1)) - 1   'dernier jour du mois

   

    Selection.AutoFilter Field:=1, Criteria1:=">=" & Début, Operator:=xlAnd, _

        Criteria2:="<=" & Fin

  
Ce n'est jamais simple de travailler avec les dates... Il te faudra faire des tests.

MPi
Commenter la réponse de cs_MPi
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 5 sept. 2006 à 17:11
0
Merci
salu MPI,

merci pour ta réponse, tu ne dois pas etre très loin, mais ca fait toute une jnée que je cherche mais ca ne fonctionne pas il ne reconnait apparement pas le format lors du filtre...

ca merdouille a ce niveau là!!

 Selection.AutoFilter Field:=1, Criteria1:=">=" & Début, Operator:=xlAnd, _
        Criteria2:="<=" & Fin

je suis complètment bloqué, j'arrive pas à trouver!!

Merci encore, @++ Achi... 
Commenter la réponse de cs_Achi
Messages postés
13368
Date d'inscription
lundi 13 décembre 2004
Dernière intervention
3 février 2018
- 5 sept. 2006 à 17:14
0
Merci
à l'aveuglette...

Selection.AutoFilter Field:=1, Criteria1:=">= #" & Début & "#", Operator:=xlAnd, Criteria2:="<= #"& Fin & "#"
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Commenter la réponse de PCPT
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 5 sept. 2006 à 17:30
0
Merci
salu PCPT,


 


et bah non! , merci qd même!

je pense qu'il ne reconnait pas le format de la date de mon champs!!
car il filtre, mais rien!! il me dégage tt..

mon format de date est jj/mm/aa , mais c'est bizarre car mes variable Début et Fin st dimensionnées en tant que date!!!

je suis largué!!!! Achi...
Commenter la réponse de cs_Achi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 5 sept. 2006 à 23:26
0
Merci
Quand tu dis "mon format est jj/mm/aa

est-ce que tu veux dire ce qui est affiché ?

parce que si tu cliques sur une cellule, il se peut que ce que tu vois dans la barre de formule diffère...


Ici, mon format de date utilise le tiret comme séparateur.

Si je tapes dans une cellule 10 sept (sans tiret), puis ENTER

Je vois 10-sept inscrit dans la cellule (avec tiret)

et 2006-09-10 dans la barre de formule

et le format de cellule devient Personnalisé jj-mmm
Vachement convivial, non ?   ¦¬)


Et si je mets un filtre et que je vais dans Personnalisé, je vois le texte au format de la cellule, soit jj-mmm


Dans la case à côté, je mets =A1 avec format Date, j'obtiens 10-09-06 dans la cellule.

Dans la cellule à côté, j'écris 10-09-06 et j'obtiens 2010-09-06 (follement amusant)

De quoi virer su'l top comme qu'on dit...


J'ai donc réessayer avec une colonne au format jj-mmm (personnalisée)

et une autre au format Date selon ma configuration

et dans les 2 cas, la macro que je t'ai écrite fonctionne bien...


Le mieux, je pense, est que tu utilises la fenêtre espion de VBA et que
tu mettes diférentes choses pour voir comment ça réagit dans ton
ordi... Tu pourrais y mettre Début et Fin entre autres, et aussi
Range("XY") dans lequel il y a une date et faire un arrêt sur le End
Sub pour voir les valeurs générées.

MPi
Commenter la réponse de cs_MPi
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 6 sept. 2006 à 09:11
0
Merci
salut MPI,


Bon alors il reconnait bien le format qd je fait le code suivant :


Selection.AutoFilter Field:=1, Criteria1:= Début

il filtre donc le 01/09/2006.


 


mais lorsque je j'écris :


Selection.AutoFilter Field:=1, Criteria1:=">=" & Début

il me filtre n'importe quoi, soit presque rien et le peu qu'il filtre n'est pas cohérent donc difficile de trouver le problème.

c'est tout simplement le supérieur ou le inférieur ou égale qui merdouille. ca fonctionne pour les chiffres mais pour les date est-ce vraiment pareil???

attention HHHuuurrlement Primairrrree!!!!!!

@++


 
Commenter la réponse de cs_Achi
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 6 sept. 2006 à 09:34
0
Merci
re,

Ayé j'ai pigé.... en fait il se base sur l'année!!!!

c'est pour ca que ca ne fonctionnait pas!

pour Inf  ou =  ,  il prend ttes les dates inf à 2006 (mais sans tenir compte du = !!!)
pour Sup ou , il prend ttes les dates sup ou à 2006 ( et là il tient compte du égale)

serait-ce normal tout çà??

Achi!!
Commenter la réponse de cs_Achi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 6 sept. 2006 à 11:51
0
Merci
OK, voici un autre petit test...

Il s'agit de changer le format de cellule à "mm", faire le filtre,
remettre le format original et HOP, ça devrait fonctionner... du moins
j'espère...

En faisant de cette manière, l'année ne devrait pas causer de problème.


    Dim I As Long

    Dim Mois As String

   

    Mois = "10"  'ou une variable/cellule qui détermine le mois à 2 caractères

   

    Cells.AutoFilter field:=1

    Columns("A:A").Select

   

    'Changer le format des cellules pour ne voir que le mois

    Selection.NumberFormat = "mm"

    Selection.AutoFilter field:=1, Criteria1:="=" & Mois

   

    'remettre le format comme avant, même pour les cellules masquées

    For I = 2 To 1000  'déterminer le nombre de lignes

        Range("A" & I).NumberFormat = "dd-mmm"

    Next

    Range("A1").Select

MPi
Commenter la réponse de cs_MPi
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 6 sept. 2006 à 12:35
0
Merci
salut MPI,


ca m'a l'air tout à fait correct tout çà, mais bon tu vas dire que je suis lourd mais j'ai besoin d'avoir le choix sur l'année, c'est pr ca que ton code précédent était intéressant...


puis en fait ca ne filtrait pas sur l'année comme j'ai pu le dire sur le post précédent, en fait le inf ou sup ca ne fonctionne pas bien avec les dates il doit mettre ds un format spécial pour effectuer ses intervalles...

c'est bizarre car lorsque j'essaye directement sur le petit onglet du filtre et que je fais personnalisé, je mets sup ou égal à 01/09/06 et inf ou à 30/09/06 il fonctionne
ca prouve que c'est une mauvaise syntaxe qui est utilisée ds le code suivant :

    Selection.AutoFilter Field:=1, Criteria1:=">=" & Début, Operator:=xlAnd, _
    Criteria2:="<=" & Fin 

Achi.


 


 
Commenter la réponse de cs_Achi
Messages postés
128
Date d'inscription
lundi 27 février 2006
Dernière intervention
17 mai 2008
- 6 sept. 2006 à 15:05
0
Merci
Merci bipou et merci tout le monde pour votre aide,


 


j'avais tt de même réussi à m'en sortir avec l'aide de MPI, mais ton code était celui que je cherchais....


sorti de galère!!! ouf!


 


@++ Achi!!
Commenter la réponse de cs_Achi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.