XL 2019 Actualiser filtres en VBA

roybaf

XLDnaute Occasionnel
Bonjour à tous,

Je n'arrive pas à trouver une solution à mon problème de filtre sur colonne de tableau.

J'ai une macro qui génère autant de tableau qu'il n'y a de ligne dans mon TCD et applique un filtre à la colonne I, ce filtre est une donnée variable stockée dans une cellule.

Tout fonctionne mais sur quelques tableaux, le filtre ne s'applique pas alors même que mes conditions apparaissent correct quand je clique sur le bouton "filtre, supérieur a" le montant y figure déjà et ce n'est que lorsque que j'en sort que mon tableau s'actualise... un bug?? en plus cela ne se fait que sur quelques tableaux, pas tous.

Alors je cherche a actualiser le filtre mais "ActiveSheet.AutoFilter.ApplyFilter" me renvoi une erreur.

Mon code :

VB:
Sub Filtre_des_tableaux()
'
' Macro2 Macro
'
Application.ScreenUpdating = False
Sheets("TCD").Select
ActiveWorkbook.RefreshAll
nbval = Sheets("TCD").Range("nbval").Value
For v = 10 To nbval + 9
'
    Range("D" & v).Select
    Selection.ShowDetail = True
   
Sheets("TCD").Select
Next v

For x = 1 To nbval
y = x + 9

    Sheets("Feuil" & x).Select
    ActiveSheet.ListObjects(1).Range.AutoFilter Field:=9, Criteria1:=">" & Sheets("TCD").Range("G" & y).Value, _
        Operator:=xlAnd
  ActiveWorkbook.RefreshAll

Next x

Application.ScreenUpdating = True
Sheets("TCD").Select
   
End Sub

Quelqu'un a une idée?
 
Dernière édition:

roybaf

XLDnaute Occasionnel
Il faut cliquer sur "Recap des sélections" pour compléter la feuille. En effet, la colonne "nombre de selections" de l'onglet TCD récapitule les selections qui devraient appraître dans les différentes feuilles, je copie colle les résultats des filtres dans l'onglet récap.

Effectivement, je constate que de votre côté il n'y a aucun problème... Alors pourquoi chez mois certains filtres ne se font pas? Dois-je ralentir la Macro? je suis sur un pon PC pourtant en (Processeur I7)
 

eriiic

XLDnaute Barbatruc
Si tu donnes les renseignements au compte-goutte on n'est pas au bout.
Je n'avais même pas vu qu'il y avait des boutons...
Donc oui, 118 lignes dans Recap

Etre sur un bon PC n'est pas forcément un avantage. Un 10 ans d'age c'est meilleur, la preuve ;-)
Ce qu'il faut savoir c'est qu'excel (sur feuille) et vba ne font pas toujours bon ménage. Ils ne sont pas synchronisés et si vba va plus vite que la musique ça sonne faux.
Déjà, dans tes boucles, tu pourrais mettre un DoEvents pour le laisser traiter les tâches en attente. Ca ne mange pas de pain.

Et pour forcer vba à attendre qu'excel ait fini ses calculs avant de continuer tu as :
VB:
    Do Until Application.CalculationState = xlDone
        DoEvents
    Loop
Je doute qu'il tienne compte de la mise en place des filtres mais au cas ou...

Si tu as toujours des pb je veux bien échanger nos PC. Quand on peut aider...
eric
 

roybaf

XLDnaute Occasionnel
Bonjour Eric et merci, désolé pour les liens non explicité à l'origine.

J'ai essayé DoEvents et toujours pareil le résultat du filtre ne s'affiche pas.

Je dois cliquer sur le symbole du filtre "supérieur à" puis faire "ok" pour qu'il en tienne compte! il n'y a pas de code qui permet cela?

Effectivement sur ton fichier les filtres sont correctement affiché.

Voilà ce que j'ai :

1574098679404.png
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Alors je cherche a actualiser le filtre mais "ActiveSheet.AutoFilter.ApplyFilter" me renvoi une erreur.
Pareil chez moi. 😕

En revanche, j'ai trouvé un code qui à l'air de fonctionner 👍 :
VB:
ActiveSheet.ListObjects(1).AutoFilter.ApplyFilter


ps : je sais que ce fil date de plus de deux ans mais si, comme moi, quelqu'un tombe dessus en faisant une recherche, maintenant il aura une réponse utilisable grâce au forum Excel-downloads. ;)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof