variable et autofilter VBA

  • Initiateur de la discussion Initiateur de la discussion modus57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

modus57

XLDnaute Occasionnel
Bonjour à tous. 😀

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.
 
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:
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

Dernière édition:
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
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
407
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Retour