VBA pour filtrer automatiquement
Le
Emile63

Bonjour à tous,
Je souhaite automatiser avec une macro un filtre automatique, dans le but q=
ue sur une base de donnée le filtre ne porte que sur l'année en c=
ours.
Je travaille sur le code suivante, mais ça coince un peu
MaDate = "01.01." & Year(Date)
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, _ Operator=
:=xlFilterValues, Criteria2:=Array(0, "<=" & "MaDate")
Est-ce que quelqu'un peut me dire mon erreur ?
Merci d'avance pour votre aide,
cordialement.
Emile
Je souhaite automatiser avec une macro un filtre automatique, dans le but q=
ue sur une base de donnée le filtre ne porte que sur l'année en c=
ours.
Je travaille sur le code suivante, mais ça coince un peu
MaDate = "01.01." & Year(Date)
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, _ Operator=
:=xlFilterValues, Criteria2:=Array(0, "<=" & "MaDate")
Est-ce que quelqu'un peut me dire mon erreur ?
Merci d'avance pour votre aide,
cordialement.
Emile
si c'est pour filtrer sur l'année en cours ça doit donc être <= "31.12."
& Year(Date), non ?
ou
"01.01." & Year(Date) + 1
pas testé le reste.
--
JièL en cours
Le 23/01/2017 à 18:19, Emile63 a écrit :
Un exemple en utilisant un filtre élaboré.
La plage à filtrer sur la feuille : A1:A882 et ne
retenir les lignes pour l'année 2017
'--------------------------------------------------
Sub test()
'Définir la zone de critère C1:C2 ' la plage que tu veux disponible dans la
feuille
'C1 Laisser totalement vide
'C2 saisir la formule "=YEAR(RC[-2]) 17"
'pour obtenir seulement les données pour l'année 2007
Dim Sh As Worksheet
Set Sh = Worksheets("Feuil1")
With Sh
.Range("C1") = ""
.Range("C2") = "=YEAR(RC[-2]) 17"
.Range("A1:A882").AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Sh.Range("C1:C2"), Unique:úlseEnd With
.Range("C2") = ""
End Sub
'--------------------------------------------------
MichD
MaDate = DateSerial(Year(Date), 1, 1)
isabelle
Le 2017-01-23 à 12:19, Emile63 a écrit :
MaDate = Application.Text(DateSerial(Year(Date), 1, 1), "d/m/yyyy")
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="<=" &
MaDate, Operator:=xlAnd
isabelle
nul besoin de macro
si ta version n'est pas trop ancienne et que le champ contient bien des dat es au format date
Donnée filtre automatique dans le déroulant prendre chronologique et applique: "Cette année"
Cdlt.
--
LSteph
[MaPlage].AutoFilter Field:=1, Criteria1:= _
xlFilterThisYear, Operator:=xlFilterDynamic
Merci à tous pour votre aide.
vos solutions m'ont permis de trouver mon bonheur. :-)
Cordialement,
Emile