OVH Cloud OVH Cloud

Autofilter et dates

3 réponses
Avatar
news.skynet.be
Bonjour à toutes et tous,

J'aimerais pouvoir utiliser le filtre automatique pour sélectionner des
enregistrements entre deux dates (date dans la colonne F sous format
JJ/MM/AAAA) et faire un sous-total de la colonne I des enregistrements
filtrés. Tout ça en vba évidemment.

Pour le filtre, j'ai utilisé l'enregistreur de macro qui me donne ceci :

Selection.AutoFilter Field:=6, Criteria1:=">01/01/2005", Operator:=xlAnd,
Criteria2:="<31/01/2005"

Lorsque je lance la macro, le filtre me renvoie toujours un résultat nul.
Pas un seul enregistrement, alors que lorsque je fais la même démarche
manuellement, j'obtiens une cinquantaine d'enregistrements.

Je ne vois pas d'où viens le problème. Quelqu'un peut-il m'aider ?

Merci d'avance.

Daniel

3 réponses

Avatar
MichDenis
Bonjour news.skynet.be,

Pour les dates, tu devrais utiliser le filtre élaboré...le filtre automatique n'est pas fiable (!), les formats des dates affectent
le résultat obtenu, et, ce n'est sûrement pas l'effet désiré.

Et tu utilises une formule comme critère :

Zone de critère :

D1 = tu laisses totalement vide
'à titre d'exemple
D2 = =ET((A2>AUJOURDHUI()+5);(A2<AUJOURDHUI()+20))

Si tu as excel 2003, tu as une nouvelle fonctionnalité qui te perme d'utiliser les fonctions sous.total() sans tenir compte des
cellules masquées.

Sinon, si tu copies le résultats sur une feuille temporaire, la somme des éléments d'une colonne devraient être faciles à obtenir

l'autre alternative est de faire une boucle sur les cellules visibles... Ok si ta plage n'est pas très grande !


Salutations!





"news.skynet.be" <info'at'supreme-eupen.com> a écrit dans le message de news: 425bd2b1$0$30464$
Bonjour à toutes et tous,

J'aimerais pouvoir utiliser le filtre automatique pour sélectionner des
enregistrements entre deux dates (date dans la colonne F sous format
JJ/MM/AAAA) et faire un sous-total de la colonne I des enregistrements
filtrés. Tout ça en vba évidemment.

Pour le filtre, j'ai utilisé l'enregistreur de macro qui me donne ceci :

Selection.AutoFilter Field:=6, Criteria1:=">01/01/2005", Operator:=xlAnd,
Criteria2:="<31/01/2005"

Lorsque je lance la macro, le filtre me renvoie toujours un résultat nul.
Pas un seul enregistrement, alors que lorsque je fais la même démarche
manuellement, j'obtiens une cinquantaine d'enregistrements.

Je ne vois pas d'où viens le problème. Quelqu'un peut-il m'aider ?

Merci d'avance.

Daniel
Avatar
news.skynet.be
Merci pour ta réponse, mais je pense ne pas pouvoir le faire de cette
manière.

En fait, il faut que l'utilisateur puisse définir lui-même les dates entre
lesquelles il veut sélectionner les enregistrements. Entretemps, j'ai essayé
ça :

Réponse1 = InputBox("Entre la date de début.", "Définir le début de
période")
Réponse2 = InputBox("Entre la date de fin.", "Définir la fin de
période.")
Selection.AutoFilter
Selection.AutoFilter Field:=6, Criteria1:=Réponse1, Operator:=xlAnd,
Criteria2:=Réponse2

Ca ne fonctionne pas car je ne sais pas comment indiquer qu'il faut que les
enregistrements doivent être supérieur ou égale au critère 1 et inférieur ou
égal au critère 2.

Si tu pouvais encore me donner un petit coup de pouce, ce serait sympa !
Merci en tout cas.

ps : je suis sous excel 2000.

Daniel

"MichDenis" a écrit dans le message de
news:
Bonjour news.skynet.be,

Pour les dates, tu devrais utiliser le filtre élaboré...le filtre
automatique n'est pas fiable (!), les formats des dates affectent

le résultat obtenu, et, ce n'est sûrement pas l'effet désiré.

Et tu utilises une formule comme critère :

Zone de critère :

D1 = tu laisses totalement vide
'à titre d'exemple
D2 = =ET((A2>AUJOURDHUI()+5);(A2<AUJOURDHUI()+20))

Si tu as excel 2003, tu as une nouvelle fonctionnalité qui te perme
d'utiliser les fonctions sous.total() sans tenir compte des

cellules masquées.

Sinon, si tu copies le résultats sur une feuille temporaire, la somme des
éléments d'une colonne devraient être faciles à obtenir


l'autre alternative est de faire une boucle sur les cellules visibles...
Ok si ta plage n'est pas très grande !



Salutations!





"news.skynet.be" <info'at'supreme-eupen.com> a écrit dans le message de
news: 425bd2b1$0$30464$

Bonjour à toutes et tous,

J'aimerais pouvoir utiliser le filtre automatique pour sélectionner des
enregistrements entre deux dates (date dans la colonne F sous format
JJ/MM/AAAA) et faire un sous-total de la colonne I des enregistrements
filtrés. Tout ça en vba évidemment.

Pour le filtre, j'ai utilisé l'enregistreur de macro qui me donne ceci :

Selection.AutoFilter Field:=6, Criteria1:=">01/01/2005",
Operator:=xlAnd,

Criteria2:="<31/01/2005"

Lorsque je lance la macro, le filtre me renvoie toujours un résultat nul.
Pas un seul enregistrement, alors que lorsque je fais la même démarche
manuellement, j'obtiens une cinquantaine d'enregistrements.

Je ne vois pas d'où viens le problème. Quelqu'un peut-il m'aider ?

Merci d'avance.

Daniel





Avatar
AV
Selection.AutoFilter Field:=6, Criteria1:=">01/01/2005", Operator:=xlAnd,
Criteria2:="<31/01/2005"


Pour pas de souci, causer à XL en lui parlant en numéros de série et non en
dates formatées :
Selection.AutoFilter Field:=6, Criteria1:=">=" & DateValue("01/01/2005") * 1,
Operator:=xlAnd _
, Criteria2:="<=" & DateValue("31/01/2005") * 1
ou bien, plus "universel" :
Selection.AutoFilter Field:=1, Criteria1:=">=" & DateSerial(2005, 1, 1) * 1,
Operator:=xlAnd _
, Criteria2:="<=" & DateSerial(2005, 1, 31) * 1

AV