Autofilter ne fonctionne plus

Bonjour à tous.

Depuis peu (peut-être une mise à jour de XLS récente), l'une de mes macros ne fonctionne plus. J'ai testé en enregistrant une nouvelle macro, et là aussi, ça ne fonctionne pas :

Sub Macro1()
ActiveSheet.Range("$A$6:$AW$10000").AutoFilter Field:=19, Operator:=xlFilterValues, Criteria2:=Array(1, "1/1/2020", 1, "2/1/2020", 1, "3/1/2020", 1, "4/1/2020")
End Sub

En gros, j'ai un tableau de factures, dont l'une des colonnes est la date. Je souhaite donc sélectionner toutes les factures des mois ci-dessus.

Lorsque j'execute la macro, j'ai une erreur d'execution '1004' :

La méthode AutoFilter de la classe Range a échoué.

Je ne comprends pas pourquoi, alors que ça fait des années qu'elle fonctionne. Y a-t-il eu des modifs ou un nouveau bug dans EXCEL ?

Bonjour,

J'ai testé ton code sur ma machine et j'ai dû changer les 1 pour des 2 ...

Sub Macro1()
ActiveSheet.Range("$A$6:$AW$10000").AutoFilter Field:=19, Operator:=xlFilterValues, Criteria2:=Array(2, "1/1/2020", 2, "2/1/2020", 2, "3/1/2020", 2, "4/1/2020")
End Sub

ric

Merci Ric, mais chez moi ça fait la même erreur.

En remplaçant par des 2 chez toi, ça fonctionne ?

Et là où c'est bizarre, c'est que cette macro a toujours fonctionné chez moi, sauf depuis quelques jours. C'est pour ça que je me demande s'il n'y a pas eu une mise à jour de Microsoft qui a généré un nouveau bug...

Bonjour,

La méthode Autofilter est correcte avec le premier élément à 1 pour les critères (0 = années, 1 = mois et 2 = jours).

Avec 2 comme premier élément, on filtre sur la date exacte.

C'est certainement un souci de définition de la plage !?

Joins un fichier représentatif.

Sinon, il serait judicieux de mettre tes données sous forme de tableau structuré.

Cdlt.

Merci Jean-Eric.

Voici le fichier. On ne peut plus simple. Encore une fois, cette formule fonctionnait il y a 1 mois.

Pourquoi elle ne fonctionnerait plus ?

34classeur1.xlsm (14.73 Ko)

Re,

Je ne comprends pas !...

Ces procédures fonctionnent. Elles filtrent les dates pour les mois de janvier et février 2016.

Cdlt.

Sub Macro()
    ActiveSheet.Range("$A$1:$D$18").AutoFilter _
            Field:=3, _
            Operator:=xlFilterValues, _
            Criteria2:=Array(1, "1/1/2016", 1, "2/1/2016")
End Sub

Sub Macro2()
    ActiveSheet.Range("$A$1:$D$18").AutoFilter _
            Field:=4, _
            Operator:=xlFilterValues, _
            Criteria2:=Array(1, "1/1/2016", 1, "2/1/2016")
End Sub

Alors chez moi, ça me fait le message d'erreur suivant :

2017 screenshot 12

Penses-tu que j'ai un problème de EXCEL ?

Bonjour,

pour te rassurer (quoique...), j'ai la même erreur sur excel 2019.
Pas d'explication pour l'instant.
eric

Bonjour à tous,

La macro est dans le Module1 et tu utilises "ActiveSheet...." > puis, tu reçois l'erreur 1004 ...

Un petit test > remplace : "ActiveSheet." > par : "Worksheets("Feuil1")." > y a-t-il une différence ? > zou c'est la même erreur 1004 ?

ric

P.S. : J'ai testé le fichier sur Excel 365 en 32 bits et en 64 bits > ça fonctionne bien sur les 2 versions ...

Hello,

Malheureusement, j'avais déjà testé et ça ne fonctionne pas mieux.

En revanche, si tu me dis que ça fonctionne sur 365, c'est qu'il s'est glissé un bug depuis la dernière mise à jour d'EXCEL...

Je vais écrire au support de MSFT.

William

Bonjour,

Si je ne me trompe pas, les mises à jour 2016 sont principalement des mises à jour pour des problèmes de sécurité.

Peux-tu nous confirmer ta version Excel ?

Cdlt.

Ma version est la suivante :

2017 screenshot 52

Alors les amis ? Tout le monde sèche ?

Bonjour wperes,

Je te répondrais sur ce poste, alors voici ma version d'Excel 2016

image

Toi apparemment tu as une version O365 est-ce le souci... aucune idée

Aucune idée. Je ne fais pas mes installations. Faut-il donc que je change de version d'Excel ?
Comment peut-on demandé à MSFT ce qu'il faut faire ? Il ne répondent pas.

Re,

Non il n'y a pas à changer de version, ton problème n'est juste pas normal

Question, as-tu essayé sur un autre fichier par hasard ?

@+

Tout à fait.

Et celui que j'ai partagé ici n'est d'autre que le résultat de l'enregistrement automatique de la la Macro (pour simpifier car ma Macro est bien plus complexe que cet exemple tout bête).

ça fait 1 mois que je cherche une solution. J'en peux plus :)

Re,

Comment je peux te comprendre

Dans ta boite, as-tu essayé de changer de PC par hasard ?

Ce message tu ne devrais l'avoir que pour 2 raisons :

  1. Tu n'adresse pas la bonne colonne dans Field:=X
  2. Tu utilises un tableau structuré

@+

Bonjour,

Peux-tu regarder ces 2 procédures et faire un retour ?

Cdlt.

7classeur1.xlsm (22.21 Ko)
Sub FilterDataInRange_2()
Dim lastCol As Long, lastRow As Long
Dim rng As Range
    With ActiveSheet
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rng = .Cells(1).Resize(lastRow, lastCol)
    End With
    rng.AutoFilter _
            Field:=4, _
            Operator:=xlFilterValues, _
            Criteria2:=Array(1, "1/1/2016", 1, "2/1/2016")
End Sub

Sub FilterDataInTable()
Dim lo As ListObject
    Set lo = Range("Table1").ListObject
    lo.Range.AutoFilter _
            Field:=4, _
            Operator:=xlFilterValues, _
            Criteria2:=Array(1, "1/1/2016", 1, "2/1/2016")
End Sub

Bonjour wperes ou devrais-je dire danielco

Des réponses également ICI

Rechercher des sujets similaires à "autofilter fonctionne"