Bonjour tout le monde,
Je fais un filtre automatique par VBA, mais il ne s'affiche pas, il ne
s'affiche pas de ligne.
Admettons une macro comme ceci:
Sub filtreDate()
Range("A1").Select
Selection.AutoFilter Field:=5, Criteria1:=Format(Range("A1"), "mm/dd/yyyy")
End Sub
Il ne s'affiche aucune ligne
Merci à l'avance pour vos précieux conseil
Gaston
Oui, j'ai compris, c'est intelligent ta solution, Un gros problème de régler Merci Gaston
"MichDenis" wrote:
| C'est lorsqu'on veut seulement filtrer une date... | J'ai transformé la macro mais sans bon résultat
L'exemple que je t'ai donnée servait justement ce but.
As-tu remarqué que le critère augumentait de 1 et diminuait de 1 de la date que tu choisis.
Observe attentivement :
Dim Ddebut As Date Dim DFin As Date 'En supposant que A2 soit une cellule 'ayant une date reconnu par excel Ddebut = Range("A2") - 1 'le critère DFin = Range("A2") + 1
Le critère est en A2 , si je diminue de 1 la date de début et augmente de 1 la date de fin, je vais obtenir seulement les enregistrement correspondant à la date A2
Pourquoi ça ? Parce qu'avec les opérateurs > ou >= ou < ou <= , excel transforme la valeur de la date que tu passes comme critère en valeur numérique (ce qu'est en fait une date pour excel. De ce fait, il n'a aucun problème à identifier les cellules qui correspondent aux critères.
Lorsque tu utilises l'opérateur " = " , Excel considère la date du critère comme un "String" (du texte) au lieu de considérer la date comme une valeur numérique. (ça c'est ce que tu trouves comme explication dans les bouquins sérieux (version anglaise) Beaucoup de ces bouquins sont traduits en français... mais je suppute les auteurs de ne pas avoir testé leur propos avec une version française.
La réalité, c'est que c'est possible d'utiliser la date tel qu'il propose " comme critère... mais il y a plusieurs cas particulier et cela serait trop long à expliquer en ce lieu. C'est ce pourquoi je t'ai proposé cette solution de rechange. Le fichier exemple existe, je l'ai créé il y a un certain temps... mais faudrait que je prenne le temps de le commenter... peut être un jour !
Une autre alternative serait d'utiliser par exemple, le filtre élaboré qui ne cause aucun problème.
Oui, j'ai compris, c'est intelligent ta solution,
Un gros problème de régler
Merci
Gaston
"MichDenis" wrote:
| C'est lorsqu'on veut seulement filtrer une date...
| J'ai transformé la macro mais sans bon résultat
L'exemple que je t'ai donnée servait justement ce but.
As-tu remarqué que le critère augumentait de 1 et diminuait
de 1 de la date que tu choisis.
Observe attentivement :
Dim Ddebut As Date
Dim DFin As Date
'En supposant que A2 soit une cellule
'ayant une date reconnu par excel
Ddebut = Range("A2") - 1 'le critère
DFin = Range("A2") + 1
Le critère est en A2 , si je diminue de 1 la date de début
et augmente de 1 la date de fin, je vais obtenir seulement
les enregistrement correspondant à la date A2
Pourquoi ça ? Parce qu'avec les opérateurs > ou >= ou
< ou <= , excel transforme la valeur de la date que tu passes
comme critère en valeur numérique (ce qu'est en fait une date
pour excel. De ce fait, il n'a aucun problème à identifier les
cellules qui correspondent aux critères.
Lorsque tu utilises l'opérateur " = " , Excel considère la date du
critère comme un "String" (du texte) au lieu de considérer la
date comme une valeur numérique. (ça c'est ce que tu trouves
comme explication dans les bouquins sérieux (version anglaise)
Beaucoup de ces bouquins sont traduits en français... mais je
suppute les auteurs de ne pas avoir testé leur propos avec une
version française.
La réalité, c'est que c'est possible d'utiliser la date tel qu'il propose "
comme critère... mais il y a plusieurs cas particulier et cela serait
trop long à expliquer en ce lieu. C'est ce pourquoi je t'ai proposé
cette solution de rechange. Le fichier exemple existe, je l'ai créé
il y a un certain temps... mais faudrait que je prenne le temps de
le commenter... peut être un jour !
Une autre alternative serait d'utiliser par exemple, le filtre élaboré qui
ne cause aucun problème.
Oui, j'ai compris, c'est intelligent ta solution, Un gros problème de régler Merci Gaston
"MichDenis" wrote:
| C'est lorsqu'on veut seulement filtrer une date... | J'ai transformé la macro mais sans bon résultat
L'exemple que je t'ai donnée servait justement ce but.
As-tu remarqué que le critère augumentait de 1 et diminuait de 1 de la date que tu choisis.
Observe attentivement :
Dim Ddebut As Date Dim DFin As Date 'En supposant que A2 soit une cellule 'ayant une date reconnu par excel Ddebut = Range("A2") - 1 'le critère DFin = Range("A2") + 1
Le critère est en A2 , si je diminue de 1 la date de début et augmente de 1 la date de fin, je vais obtenir seulement les enregistrement correspondant à la date A2
Pourquoi ça ? Parce qu'avec les opérateurs > ou >= ou < ou <= , excel transforme la valeur de la date que tu passes comme critère en valeur numérique (ce qu'est en fait une date pour excel. De ce fait, il n'a aucun problème à identifier les cellules qui correspondent aux critères.
Lorsque tu utilises l'opérateur " = " , Excel considère la date du critère comme un "String" (du texte) au lieu de considérer la date comme une valeur numérique. (ça c'est ce que tu trouves comme explication dans les bouquins sérieux (version anglaise) Beaucoup de ces bouquins sont traduits en français... mais je suppute les auteurs de ne pas avoir testé leur propos avec une version française.
La réalité, c'est que c'est possible d'utiliser la date tel qu'il propose " comme critère... mais il y a plusieurs cas particulier et cela serait trop long à expliquer en ce lieu. C'est ce pourquoi je t'ai proposé cette solution de rechange. Le fichier exemple existe, je l'ai créé il y a un certain temps... mais faudrait que je prenne le temps de le commenter... peut être un jour !
Une autre alternative serait d'utiliser par exemple, le filtre élaboré qui ne cause aucun problème.