VBA - filtre textuel "antérieur ou égal à " une valeur dans une cellule

Bonjour,

Dans mon fichier ci-joint j'aimerais un code qui permette de filtrer une date (colonne E) avec un filtre antérieur ou égal à la donnée dans la cellule I1 (celle-ci changera tout le temps)

Exemple de mon fichier sans filtre :

image

Exemple de mon fichier avec filtre dans la colonne E :

image

J'ai fais en code :

Sub Filtres_export()

Sheets("Feuil1").Select
ActiveSheet.AutoFilterMode = False

Range("A1:F1").AutoFilter

derligne = Range("A200000").End(xlUp).Row

ActiveSheet.Range("$A$2:$F$" & derligne).AutoFilter Field:=5, Criteria1:= _
        "<=04/11/2024", Operator:=xlAnd

End Sub

Je n'arrive pas à mettre dans mon code la donnée de ma cellule. Je suis obligé de la changer à la main.

Merci pour votre aide

11test-macro.xlsm (15.66 Ko)

Bonjour,

Un essai :

Sub Filtres_export()
Dim Ws As Worksheet
Dim DerLigne As Integer

   Set Ws = Sheets("Feuil1")
   Ws.Activate

   DerLigne = Ws.Range("A" & Ws.Rows.Count).End(xlUp).Row  ' dernière ligne

   On Error Resume Next        ' si erreur
   AutoFilter.Sort.SortFields.Clear

   AutoFilter.Sort.SortFields.Add2 Key:= _
        Ws.Range("A1:F" & DerLigne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
   On Error GoTo 0            ' résume erreur

   Ws.AutoFilterMode = False

   Ws.Range("A1:F1").AutoFilter

   Ws.Range("$A$2:$F$" & DerLigne).AutoFilter Field:=5, Criteria1:= _
        "<=" & Format(Ws.Cells(1, "i").Value, "MM-DD-YYYY")
    ' note : Pour le peu que j'en sais, il semble que le filtre ne prend que les dates au format anglais, il faut donc convertir. 

End Sub

Ce code gagnerait sûrement à être revu par un excelleux meilleur que moi.

Biz

Rechercher des sujets similaires à "vba filtre textuel anterieur egal valeur"