Critères de filtre

Résolu
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008 - 4 sept. 2006 à 11:09
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre 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!

15 réponses

cs_bipou Messages postés 61 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 14 septembre 2006
6 sept. 2006 à 14:15
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")


 
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 sept. 2006 à 11:21
fil VBA! (modifié)
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
4 sept. 2006 à 12:18
salut PCPT,


Excuse moi mais j'ai pas compris!!


Achi!


 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 sept. 2006 à 12:45
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
4 sept. 2006 à 12:50
re,


ok merci! dsl!


Achi!


@+
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
4 sept. 2006 à 17:23
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
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
5 sept. 2006 à 17:11
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... 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 sept. 2006 à 17:14
à 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
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
5 sept. 2006 à 17:30
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...
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
5 sept. 2006 à 23:26
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
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
6 sept. 2006 à 09:11
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!!!!!!

@++


 
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
6 sept. 2006 à 09:34
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!!
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
6 sept. 2006 à 11:51
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
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
6 sept. 2006 à 12:35
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.


 


 
0
cs_Achi Messages postés 128 Date d'inscription lundi 27 février 2006 Statut Membre Dernière intervention 17 mai 2008
6 sept. 2006 à 15:05
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!!
0
Rejoignez-nous