Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filtre sur date marche pas!

5 réponses
Avatar
christophe
bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <> ""
Then
Selection.AutoFilter
Field:=20, Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????

5 réponses

Avatar
Daniel
Bonjour.
Essaie en mettant le format de tes dates à mm/jj/aaaa dans la macro; c'est
parfaitement irrationnel mais ça marche :
Date1= Format(Date1, "MM/DD/YYYY")
Cordialement.
Daniel
"christophe" a écrit dans le message de news:

bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <>
""
Then
Selection.AutoFilter
Field: , Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????


Avatar
Ange Ounis
Essaye en remplaçant
DateValue(date3) * 1 par CLng(date3) et
DateValue(date4) * 1 par CLng(date4)

----------
Ange Ounis
----------

bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <> ""
Then
Selection.AutoFilter
Field: , Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????


Avatar
michdenis
Bonjour Christophe,

A )
La difficulté première est de s'assurer que la date saisie dans un textbox représente bien la date désirée, que l'usager n'a pas
intervertit les jours et les mois !


3 syntaxes qui devraient fonctionner :

Évidemment, tu devras les adapter à ton code...
'----------------------------------
Dim Date1 as date
Dim Date2 as date

Date1 = cdate("10-oct-05")
Date2 = cdate("20-nov-05")

Selection.AutoFilter Field:=5, Criteria1=">=" & CLng(date1), Operator:=xlAnd _
, Criteria2:="<=" & CLng(date2)

Selection.AutoFilter Field:=5, Criteria1=">=" & date1 *1, Operator:=xlAnd _
, Criteria2:="<=" & date2 *1

Selection.AutoFilter Field:=5, Criteria1=">=" & & Format(date1, "m/d/yy"), _
Operator:=xlAnd , Criteria2:="<=" & & Format(date2, "m/d/yy")
'----------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <> ""
Then
Selection.AutoFilter
Field: , Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????
Avatar
christophe
RE A TOUS

Tout d'abord merci pour votre aide

par contre j'ai essaie toutes les méthodes que vous m'avez donné mais quand
je lance le filtre il ne me trouve rien
et meme si je lui donne une date1 correspondant a une date bien precise et
existant dans la lsite des dates et idem pour la date de fin il ne trouve
rien
alors la c'est le trou NOIR et je vois pas ce qui ne marche pas !!!!

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
'mise en forme des dates
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
ElseIf Dat <> "" And dat1 = "" Then
date2 = Date
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" Then ' choix
sur bat et date
Set Rg =
Selection.Range("T2:T" & Range("t65536").End(xlUp).Row)
Rg.NumberFormat = "dd/mm/yy;@"
Selection.AutoFilter
Field: , Criteria1:=">=" & Format(date3, "dd/mm/yyyy"), Operator:=xlAnd, _
Criteria2:="<="
& Format(date4, "dd/mm/yyyy")


question que je me pose , cela créer ti'l un probleme que d'autre filtre
soit actif?



Bonjour Christophe,

A )
La difficulté première est de s'assurer que la date saisie dans un textbox représente bien la date désirée, que l'usager n'a pas
intervertit les jours et les mois !


3 syntaxes qui devraient fonctionner :

Évidemment, tu devras les adapter à ton code...
'----------------------------------
Dim Date1 as date
Dim Date2 as date

Date1 = cdate("10-oct-05")
Date2 = cdate("20-nov-05")

Selection.AutoFilter Field:=5, Criteria1=">=" & CLng(date1), Operator:=xlAnd _
, Criteria2:="<=" & CLng(date2)

Selection.AutoFilter Field:=5, Criteria1=">=" & date1 *1, Operator:=xlAnd _
, Criteria2:="<=" & date2 *1

Selection.AutoFilter Field:=5, Criteria1=">=" & & Format(date1, "m/d/yy"), _
Operator:=xlAnd , Criteria2:="<=" & & Format(date2, "m/d/yy")
'----------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <> ""
Then
Selection.AutoFilter
Field: , Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????





Avatar
michdenis
Bonjour Christophe,

Tu as un fichier exemple illustrant les 3 méthodes décrites dans mon message précédent.

http://cjoint.com/?kBpm0UExCA

Ces méthodes s'appliquent seulement dans les cas où tu utilises les opérateurs > ou < ou >= ou <= dans tes critères.
Elles sont inopérantes si tu utilises seulement l'opérateur "="


Salutations!



"christophe" a écrit dans le message de news:
RE A TOUS

Tout d'abord merci pour votre aide

par contre j'ai essaie toutes les méthodes que vous m'avez donné mais quand
je lance le filtre il ne me trouve rien
et meme si je lui donne une date1 correspondant a une date bien precise et
existant dans la lsite des dates et idem pour la date de fin il ne trouve
rien
alors la c'est le trou NOIR et je vois pas ce qui ne marche pas !!!!

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
'mise en forme des dates
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
ElseIf Dat <> "" And dat1 = "" Then
date2 = Date
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" Then ' choix
sur bat et date
Set Rg Selection.Range("T2:T" & Range("t65536").End(xlUp).Row)
Rg.NumberFormat = "dd/mm/yy;@"
Selection.AutoFilter
Field: , Criteria1:=">=" & Format(date3, "dd/mm/yyyy"), Operator:=xlAnd, _
Criteria2:="<="
& Format(date4, "dd/mm/yyyy")


question que je me pose , cela créer ti'l un probleme que d'autre filtre
soit actif?



Bonjour Christophe,

A )
La difficulté première est de s'assurer que la date saisie dans un textbox représente bien la date désirée, que l'usager n'a pas
intervertit les jours et les mois !


3 syntaxes qui devraient fonctionner :

Évidemment, tu devras les adapter à ton code...
'----------------------------------
Dim Date1 as date
Dim Date2 as date

Date1 = cdate("10-oct-05")
Date2 = cdate("20-nov-05")

Selection.AutoFilter Field:=5, Criteria1=">=" & CLng(date1), Operator:=xlAnd _
, Criteria2:="<=" & CLng(date2)

Selection.AutoFilter Field:=5, Criteria1=">=" & date1 *1, Operator:=xlAnd _
, Criteria2:="<=" & date2 *1

Selection.AutoFilter Field:=5, Criteria1=">=" & & Format(date1, "m/d/yy"), _
Operator:=xlAnd , Criteria2:="<=" & & Format(date2, "m/d/yy")
'----------------------------------


Salutations!



"christophe" a écrit dans le message de news:
bonjour a vous tous

j'ai un filtre avec date mais quand je lance la macro rien ne s'affiche

voici mon code

Dim date1 As Date, date2 As Date, date3 As Date, date4 As Date
If Dat <> "" Then
date1 = DateSerial(Right(Dat.Value, 4), _
Mid(Dat.Value, 3, 2), Left(Dat.Value, 2))
date3 = CDate(date1)
End If
If dat1 <> "" Then
date2 = DateSerial(Right(dat1.Value, 4), Mid(dat1.Value, 3, 2),
Left(dat1.Value, 2))
date4 = CDate(date2)
End If
ElseIf Dat <> "" And dom = "" And loc1 = "" And catloc = "" And dat1 <> ""
Then
Selection.AutoFilter
Field: , Criteria1:=">=" & DateValue(date3) * 1, Operator:=xlAnd, _
Criteria2:="<="
& DateValue(date4) * 1



où est le bleme ???????????????