Filtrer dans un tableau dates antérieures à aujourd'hui

Bonjour à tous,

Je pense que je bloque sur quelque chose de très simple.

Je mets en place des boutons automatiques pour filtrer un tableau de commandes en cours selon les dates.

J'arrive à obtenir les filtres voulus jusque là sauf pour des filtres faisant référence à la date d'aujourd'hui.

J'ai essayé de changer le format en "dd mmm yyyy" et "mm/dd/yyyy" mais mes deux filtres ne fonctionnent pas.

Pourtant quand je regarde les valeurs dans la fenêtre "Locals" j'arrive bien à obtenir les dates recherchées dans mes variables.

Pourriez-vous me confimer ce que je fais de faux?

Voici le code, le fichier est également joint.

Option Explicit
Dim TBOOL As ListObject
Dim OOL As Worksheet
Dim y As Variant
Dim x As Date

Sub PSPinthepast()
Set OOL = ThisWorkbook.Worksheets("Open Order")
Set TBOOL = OOL.ListObjects("Open_Order_List")
TBOOL.AutoFilter.ShowAllData
x = Format(Date, "dd/mm/yyyy")

TBOOL.Range.AutoFilter Field:=2, Criteria1:="<x"
'Si j'écris :
' TBOOL.Range.AutoFilter Field:=2, Criteria1:="<17 dec 2019"
'cela fonctionne...
End Sub

Sub TobepushedtotheNextStatus()

Set OOL = ThisWorkbook.Worksheets("Open Order")
Set TBOOL = OOL.ListObjects("Open_Order_List")

TBOOL.AutoFilter.ShowAllData
x = Format(6 + Date, "dd mmm yyyy")

TBOOL.Range.AutoFilter Field:=2, Criteria1:="<x"

End Sub

Merci beaucoup de votre aide !

Laetitia.

Bonjour laetitia2513,

Pour la partie filtre à la date du jour, j'ai modifié comme suit et cela fonctionne :

y = Now()
x = Format(y, "mm/dd/yyyy")

TBOOL.Range.AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, x)

Je continu à regarder pour le second filtre.

Cordialement,

Bonjour laetitia2513, IronBoule,

Dans les filtres sur excel, en VBA il faut envoyer les dates en format anglais, semblerait-il.....

Un essai...

Option Explicit

Dim TBOOL As ListObject
Dim OOL As Worksheet
Dim x As Date

Sub PSPinthepast()

Set OOL = ThisWorkbook.Worksheets("Open Order")
Set TBOOL = OOL.ListObjects("Open_Order_List")

TBOOL.AutoFilter.ShowAllData
TBOOL.Range.AutoFilter Field:=2, Criteria1:="<" & Format(Date, "mm/dd/yy")

End Sub

Sub TobepushedtotheNextStatus()

Set OOL = ThisWorkbook.Worksheets("Open Order")
Set TBOOL = OOL.ListObjects("Open_Order_List")

TBOOL.AutoFilter.ShowAllData
TBOOL.Range.AutoFilter Field:=2, Criteria1:=">=" & Format(Date, "mm/dd/yy"), Operator:=xlAnd, Criteria2:="<=" & Format(Date + 6, "mm/dd/yy")

End Sub

Cordialement,

Bonjour,

Bonjour xorsankukai ,

Je ne sais pas si j'apporte de la valeur ajoutée à ta proposition, mais !...

Cdlt.

Option Explicit

Dim TBOOL As ListObject
Dim dt As String

Sub PSPinthepast()
    Set TBOOL = Range("Open_Order_List").ListObject
    dt = Format(VBA.Date, "m/d/yy")
    If TBOOL.ShowAutoFilter Then TBOOL.AutoFilter.ShowAllData
    TBOOL.Range.AutoFilter _
            Field:=2, _
            Criteria1:="<" & dt
End Sub

Sub TobepushedtotheNextStatus()
Dim dt2 As String
    Set TBOOL = Range("Open_Order_List").ListObject
    dt = Format(VBA.Date, "m/d/yy")
    dt2 = Format(VBA.Date + 6, "m/d/yy")
    If TBOOL.ShowAutoFilter Then TBOOL.AutoFilter.ShowAllData
    TBOOL.Range.AutoFilter _
            Field:=2, _
            Criteria1:=">=" & dt, _
            Operator:=xlAnd, _
            Criteria2:="<=" & dt2
End Sub

Salut Jean-Eric,

Je ne sais pas si j'apporte de la valeur ajoutée à ta proposition, mais !...

Tu as lu dans mes pensées, , n'étant pas parvenu à utiliser une variable, je me suis contenté de filtrer directement,

Un grand merci,

Bonjour IronBoule,

Bonjour xorsankukai,

Bonjour Jean-Eric,

Toujours aussi agréablement surprise de la rapidité de réponse de ce forum et du savoir quasi infini de ces membres !

Merci à vous trois pour votre aide ! Inutile de mentionner que cela fonctionne parfaitement .

Je garde la proposition de Jean-Eric

Encore merci et très bonne après-midi à vous !

Rechercher des sujets similaires à "filtrer tableau dates anterieures aujourd hui"