Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA pour filtrer automatiquement

7 réponses
Avatar
Emile63
Bonjour =C3=A0 tous,

Je souhaite automatiser avec une macro un filtre automatique, dans le but q=
ue sur une base de donn=C3=A9e le filtre ne porte que sur l'ann=C3=A9e en c=
ours.=20

Je travaille sur le code suivante, mais =C3=A7a coince un peu...

MaDate =3D "01.01." & Year(Date)

ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=3D1, _ Operator=
:=3DxlFilterValues, Criteria2:=3DArray(0, "<=3D" & "MaDate")

Est-ce que quelqu'un peut me dire mon erreur ?
Merci d'avance pour votre aide,
cordialement.
Emile

7 réponses

Avatar
JièL
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
Avatar
News.aioe.org
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
Avatar
isabelle
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
Avatar
isabelle
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
Avatar
LSteph
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
Avatar
LSteph
...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
Avatar
Emile63
Bonjour,
Merci à tous pour votre aide.
vos solutions m'ont permis de trouver mon bonheur. :-)
Cordialement,
Emile