Filtrer des données suivant la date d'une cellule

Bonjour, sa fait un moment que je coince sur une fonction autofilter. Voila mon problème.

J'aimerais avec une fonction VBA trier un tableau en fonction d'une date que j'aurais rentrer dans un msbox.

Après plusieurs essais Je n'arrive pas a la faire fonctionner.

Je vous met mon fichier en pièce jointe.

Merci de votre aide.

Mon code :

Sub Instrument_a_controler()
Dim Debut As Date
Dim Fin As Date

' Instrument_a_controler Macro

Set WS = Worksheets("Sources")

Sheets("Acceuil").Select

Debut = InputBox("entre le? ", "début du mois")
Fin = InputBox("et le ?", " Fin du mois")

Range("Sources!F3").Value = Debut
Range("Sources!F4").Value = Fin

Sheets("Donnees_Fiches_Signaletiques").Visible = True
Sheets("Donnees_Fiches_Signaletiques").Select

ActiveSheet.Range("$A$1:$S$1928").AutoFilter Field:=19, Criteria1:= _
WS.Cells(3, 6).Value, Operator:=xlAnd

31trier-vba.xlsm (20.84 Ko)

Hello,

ActiveSheet.Range("$A$1:$S$1928").AutoFilter Field:=19, Criteria1:= _
WS.Cells(3, 6).Value, Operator:=xlAnd

signifie que tu veux filtrer la colonne 19 d'une plage allant de A à S de la feuille active soit Donnees_Fiches_Signaletiques avec pour critere la date de debut saisie.

Ok, sauf que quand je regarde ton fichier dans la feuille Donnees_Fiches_Signaletiques tu nous présente un tableau allant de A à O ....

R@g

Bonjour Delage, Bonjour Rag02700

En effet ...

Une autre façon de faire, et qui te permet aussi de choisir les seules colonnes à afficher dans le résultat.

Sub trier()
'
' trier Macro
'
Dim Debut As Date
Dim Fin As Date

' Instrument_a_controler Macro
Sheets("Sources").Select

    Debut = InputBox("entre le? ", "début du mois")
    Fin = InputBox("et le ?", " Fin du mois")

    Range("Sources!F3").Value = Debut
    Range("Sources!F4").Value = Fin

    Range("A7:O7").CurrentRegion.Offset(1, 0).Clear
    Sheets("Donnees_Fiches_Signaletiques").Range("A1:O" & Sheets("Donnees_Fiches_Signaletiques").Range("A" & Rows.Count).End(xlUp).Row).AdvancedFilter _
        Action:=xlFilterCopy, _
        CriteriaRange:=Range("H2:I3"), _
        CopyToRange:=Range("A7:O7"), _
        Unique:=False

End Sub
51trier-vba.xlsm (20.93 Ko)

Merci cela à l'air de marcher je vais essayer de l'adapter à mon fichier de base.

Merci beaucoup

Rechercher des sujets similaires à "filtrer donnees suivant date"