variable et autofilter VBA

modus57

XLDnaute Occasionnel
Bonjour à tous. :D

Malgré mes recherches je n'ai pas trouvez de solution.

Je souhaiterai dans la feuille active filtrer les dates en colonne 3 en fonction de 2 variables , les adhérents en colonne 10 et les inscrits en colonne 12.

Voici le :
Code:
Dim Année As String, AnnéeN_1 As String
Année = Year(Date)
AnnéeN_1 = Year(Date) - 1

    ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(0, AnnéeN_1, 0, Année)
        
    ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=10, Criteria1:="=~?~?~?" _
        , Operator:=xlOr, Criteria2:="=Adhérent"
        
    ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=12, Criteria1:="Inscrit"
Çà bug sur :
Code:
"ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=3, Operator:= _
        xlFilterValues, Criteria2:=Array(0, AnnéeN_1, 0, Année)
Avez-vous peut-être la réponse.

Merci d'avance.
 

modus57

XLDnaute Occasionnel
Re : variable et autofilter VBA

Bonjour BOISGONTIER

Si j'utilise l'enregisteur de macro voilà le:
Code:
ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=3, Operator:= _
    xlFilterValues, Criteria2:=Array(0, "1/10/2013", 0, "11/23/2012")
J'ai essayer le :
Code:
    ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=3, _
     Criteria1:=">=" & CDbl(DateSerial(AnnéeN_1, 1, 1)), Operator:=xlAnd, _
        Criteria2:="<=" & CDbl(DateSerial(Année, 12, 31))
Le filtre masque toutes les lignes.

Petite précision j'utilise EXCEL 2010.
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : variable et autofilter VBA

A chaque version d'Excel , les règles pour les dates changent.

Sur mon fichier, avec Excel 2010, c'est ok (mais c'est un fichier au format .xls)

ActiveSheet.Range("$A$1:$Q$288").AutoFilter Field:=3, _
Criteria1:=">=" & CDbl(DateSerial(AnnéeN_1, 1, 1)), Operator:=xlAnd, _
Criteria2:="<=" & CDbl(DateSerial(Année, 12, 31))

Voir PJ

JB
 

Pièces jointes

  • FiltreDate2010.xls
    48 KB · Affichages: 66
Dernière édition:

modus57

XLDnaute Occasionnel
Effectivement ton code fonctionne avec l'année N & N-1 en dure :
Code:
AnnéeN_1 = 1970
Année = 1971
     [A5].AutoFilter field:=5, _
     Criteria1:=">=" & CDbl(DateSerial(AnnéeN_1, 1, 1)), Operator:=xlAnd, _
        Criteria2:="<=" & CDbl(DateSerial(Année, 12, 31))
Année doit être égale à l'année en cours

AnnéeN_1 doit être égale à l'année en cours-1
 

modus57

XLDnaute Occasionnel
Re : variable et autofilter VBA

Re bonjour BOISGONTIER

J’ai adapté ton code “Suppression des dates < an-2”:
Code:
[A1].AutoFilter Field:=3, Criteria1:=">=" & _
     CDbl(DateSerial(Year(Date) - 1, Month(Date), Day(Date)))
Ça marche.

Merci pour ton aide.

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 173
Messages
2 085 937
Membres
103 052
dernier inscrit
nizar0007