Filtrer selon un trimèstre

Bonjour à tous,

J'ai une macro qui fonctionne parfaitement. Je renseigne le mois et l'année voulue et il me filtre ma colonne en fonction de sa.

Voici le code :

    Windows("Export analyse délais V3.xlsm").Activate
    Dim ldateto As Long
    Dim ldatefrom As Long
    Dim LastRow As Long
    Dim ThisMonth As Integer
    Dim ThisYear As Integer

    ThisYear = Sheets("Feuil1").Range("B2").Value
    ThisMonth = Sheets("Feuil1").Range("A2").Value

    ldatefrom = DateSerial(ThisYear, ThisMonth, 1)
    ldateto = DateSerial(ThisYear, ThisMonth + 1, 0)
    With Sheet1
        .Range("D1").AutoFilter
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        With .Range("$A$1:$E$" & LastRow)
            .AutoFilter Field:=3, _
                        Criteria1:=">=" & ldatefrom, _
                        Operator:=xlAnd, _
                        Criteria2:="<=" & ldateto
        End With
    End With

Cependant, j'aimerai adapté cette macro à un trimestre entier et non un mois...

Les mois du trimestre seront dans une plages de cellules : B8:B10

En B8 mon 1 er mois (exemple Janvier)

En B9 mon 2 eme mois (exemple Février)

En B10 mon 3 eme mois (exemple Mars)

Je pense qu'il faut modifier les lignes de codes comprennant les "thismonth"

Pouvez-vous m'aider?

Merci d'avance!

Bonjour,

Une proposition ?

Cdlt.

Public Sub XXX()
Dim lDateTo As Long, lDateFrom As Long, LastRow As Long
Dim ThisYear As Integer, ThisQuarter As Integer

    Windows("Export analyse délais V3.xlsm").Activate

    ThisYear = Sheets("Feuil1").Range("B2").Value
    ThisQuarter = Sheets("Feuil1").Range("A2").Value

    Select Case ThisQuarter
        Case 1:
            lDateFrom = DateSerial(ThisYear, 1, 1)
            lDateTo = DateSerial(ThisYear, 3, 31)
        Case 2:
            lDateFrom = DateSerial(ThisYear, 4, 1)
            lDateTo = DateSerial(ThisYear, 6, 30)
        Case 3
            lDateFrom = DateSerial(ThisYear, 7, 1)
            lDateTo = DateSerial(ThisYear, 9, 30)
        Case Else:
            lDateFrom = DateSerial(ThisYear, 10, 1)
            lDateTo = DateSerial(ThisYear, 12, 31)
    End Select

    With Sheet1
        .Range("D1").AutoFilter
        LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        With .Range("$A$1:$E$" & LastRow)
            .AutoFilter Field:=3, _
                        Criteria1:=">=" & lDateFrom, _
                        Operator:=xlAnd, _
                        Criteria2:="<=" & lDateTo
        End With
    End With

End Sub

Merci Jean Eric de ta réponse.

Je n'ai pas très bien compris tes changements pourrais tu m’éclairer stp?

Re,

En A2, tu rentres un numéro de trimestre (de 1 à 4) et tu lances la procédure !?

En fonction du résultat le Select Case définit la plage à filtrer.

Cdlt.

Ahh merci je test et je te tiens au courant!

Super !!!! sa fonctionne ! grand merci à toi tu viens de me faire gagner énormément de temps!!!!

Rechercher des sujets similaires à "filtrer trimestre"