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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JièL
Le #26424390
Hello,
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 :
Bonjour à tous,
Je souhaite automatiser avec une macro un filtre automatique, dans le but que sur une base de donnée le filtre ne porte que sur l'année en cours.
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

News.aioe.org
Le #26424389
Bonjour,
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
isabelle
Le #26424396
bonjour Emile,
MaDate = DateSerial(Year(Date), 1, 1)
isabelle
Le 2017-01-23 à 12:19, Emile63 a écrit :
Bonjour à tous,
Je souhaite automatiser avec une macro un filtre automatique, dans le but que sur une base de donnée le filtre ne porte que sur l'année en cours.
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

isabelle
Le #26424398
ou plutot,
MaDate = Application.Text(DateSerial(Year(Date), 1, 1), "d/m/yyyy")
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="<=" &
MaDate, Operator:=xlAnd
isabelle
LSteph
Le #26424426
Bonjour,
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
Est-ce que quelqu'un peut me dire mon erreur ?
Merci d'avance pour votre aide,
cordialement.
Emile
LSteph
Le #26424431
...ce qui écrit en VBa pour une plage donnée à trier donnera it à peu près ceci:
[MaPlage].AutoFilter Field:=1, Criteria1:= _
xlFilterThisYear, Operator:=xlFilterDynamic
Emile63
Le #26424473
Bonjour,
Merci à tous pour votre aide.
vos solutions m'ont permis de trouver mon bonheur. :-)
Cordialement,
Emile
Publicité
Poster une réponse
Anonyme