Note: The other languages of the website are Google-translated. Back to English
English English
  • Documents
  • Excel
  • Comment réappliquer automatiquement le filtre automatique lorsque les données changent dans Excel?

Comment réappliquer automatiquement le filtre automatique lorsque les données changent dans Excel?

Dans Excel, lorsque vous appliquez le Filtre pour filtrer les données, le résultat du filtre ne sera pas modifié automatiquement avec les modifications de données dans vos données filtrées. Par exemple, lorsque je filtre toutes les pommes des données, maintenant, je change l'une des données filtrées en BBBBBB, mais le résultat ne sera pas modifié ainsi que la capture d'écran suivante. Cet article, je vais parler de la façon de réappliquer automatiquement le filtre automatique lorsque les données changent dans Excel.

doc auot rafraîchir le filtre 1

Réappliquez automatiquement le filtre automatique lorsque les données changent avec le code VBA


flèche bleue bulle droite Réappliquez automatiquement le filtre automatique lorsque les données changent avec le code VBA

Normalement, vous pouvez actualiser les données de filtre en cliquant manuellement sur la fonction Réappliquer manuellement, mais, ici, je vais introduire un code VBA pour que vous puissiez actualiser automatiquement les données de filtre lorsque les données changent, procédez comme suit:

1. Accédez à la feuille de calcul pour laquelle vous souhaitez actualiser automatiquement le filtre lorsque les données changent.

2. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Voir le code dans le menu contextuel, dans le popped out Microsoft Visual Basic pour applications fenêtre, veuillez copier et coller le code suivant dans la fenêtre Module vide, voir capture d'écran:

Code VBA: réappliquer automatiquement le filtre lorsque les données changent:

Private Sub Worksheet_Change(ByVal Target As Range)
   Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

doc auot rafraîchir le filtre 2

Notes: Dans le code ci-dessus, Fiche 3 est le nom de la feuille avec le filtre automatique que vous utilisez, veuillez le modifier selon vos besoins.

3. Et puis enregistrez et fermez cette fenêtre de code, maintenant, lorsque vous modifiez les données filtrées, le Filtre La fonction sera automatiquement actualisée à la fois, voir capture d'écran:

doc auot rafraîchir le filtre 3


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité en
80 %

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus que
    300
    Caractéristiques puissantes
    . Prend en charge Office/Excel
    2007-2019 et 365
    . Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes
    30
    -jour d'essai gratuit. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité en
    50 %
    , et réduit chaque jour des centaines de clics de souris !
bas de cabine
Commentaires (36)
Noté 5 hors 5 · évaluations 1
Ce commentaire a été minimisé par le modérateur sur le site
bonjour, comment puis-je utiliser tout cela dans google finance? Tks
Ce commentaire a été minimisé par le modérateur sur le site
Bien... j'en ai vraiment besoin
Ce commentaire a été minimisé par le modérateur sur le site
Je veux qu'un changement sur une feuille provoque le filtrage automatique de plusieurs autres feuilles, comment puis-je changer ce code ? Ex : SheetA est modifié, ce qui oblige Sheet1, Sheet2 et Sheet3 à appliquer leur filtre automatique. Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Je fais cela pour un front dans la feuille où la cellule est définie sur =sheet1!E6. Il n'appliquera pas de filtre lorsqu'il changera. Si je change le numéro dans la feuille arrière, il s'ajuste à l'avant mais ne filtre pas. Si vous ajustez la formule pour filtrer ses critères, elle s'applique à nouveau. Que puis-je faire?
Ce commentaire a été minimisé par le modérateur sur le site
Utilisez cette
Private Sub Work_Change (ByVal Target As Range)
Activesheet.AutoFilter.ApplyFilter
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Je n'arrive pas du tout à faire fonctionner ça pour moi. J'essaie de prendre à partir d'une feuille maîtresse et de lui faire prendre uniquement les travaux qui s'appliquent à certains chefs de projet sur chaque onglet portant leur nom. Je veux aussi qu'il s'actualise automatiquement lorsque j'apporte des modifications.
Ce commentaire a été minimisé par le modérateur sur le site
cette commande tout faux ne fait rien. totalement essayer mais pas utiliser.
Ce commentaire a été minimisé par le modérateur sur le site
Fonctionne très bien et me fait gagner beaucoup de temps et de déranger.. Vraiment un bon conseil.. Merci beaucoup pour votre aide
Ce commentaire a été minimisé par le modérateur sur le site
Cette solution fonctionne parfaitement. Merci de l'avoir écrit ! Si quelqu'un a des problèmes, il y a quelques points à considérer.

Tout d'abord, l'événement Worksheet_Change est appelé feuille par feuille. Cela signifie que si vous avez plusieurs feuilles dont les filtres doivent être mis à jour, vous devrez répondre à tous ces événements. Une sous-routine Worksheet_Change pour chaque feuille de calcul, et non une sous-routine pour l'ensemble du classeur (une exception - voir la note ci-dessous).

Deuxièmement, et suite à la première, le code doit être placé dans le module de code spécifique à la feuille de travail à surveiller. Il est facile (par inadvertance) de changer de module de code une fois que vous entrez dans l'éditeur VB, vous devez donc veiller à le placer spécifiquement sur la feuille que vous souhaitez surveiller pour les modifications de données.

Troisièmement, cela n'est pas confirmé, mais peut-être un point d'erreur. L'exemple utilise les noms de feuilles "Sheet1", "Sheet2", etc. Si vous avez renommé les feuilles, vous devrez peut-être mettre à jour le code. Notez que dans l'exemple, Sheet7 a reçu le nom "dfdf". Si vous vouliez mettre à jour le filtre ici, vous auriez besoin d'utiliser ;
Sheets("dfdf").AutoFilter.ApplyFilter
ne pas;
Sheets("Sheet7").AutoFilter.ApplyFilter

Il serait peut-être bon de mettre à jour l'article en incluant un exemple avec une feuille renommée.


Enfin, si vous souhaitez surveiller une feuille pour les modifications de données, mais mettre à jour les filtres sur plusieurs feuilles, vous n'avez besoin que d'une seule sous-routine, placée dans le module de code de la feuille de calcul que vous surveillez. Le code ressemblera à ceci ;

# (le code doit être placé dans la feuille de calcul pour surveiller les modifications de données)
Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Sheets("Sheet1").AutoFilter.ApplyFilter
Sheets("Sheet2").AutoFilter.ApplyFilter
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Mike,
Merci pour votre explication détaillée.
Ce commentaire a été minimisé par le modérateur sur le site
Super explication, merci.

Mais comment déclencher Sheets("Sheet3").AutoFilter.ApplyFilter lorsqu'une nouvelle feuille est créée ?
Comme je ne peux pas écrire le code que vous avez mentionné sur une feuille qui n'existe pas encore
Ce commentaire a été minimisé par le modérateur sur le site
Super merci!
Ce commentaire a été minimisé par le modérateur sur le site
fonctionne comme un champion, et si simple. merci beaucoup!
Ce commentaire a été minimisé par le modérateur sur le site
Cela semble génial. Pouvez-vous me dire comment faire la même chose pour Trier, plutôt que Filtrer, s'il vous plaît ?
Ce commentaire a été minimisé par le modérateur sur le site
Salut Chris,
Peut-être que l'article suivant peut résoudre votre problème, veuillez consulter :

https://www.extendoffice.com/documents/excel/2592-excel-auto-sort-by-value.html

Essayez-le!
Ce commentaire a été minimisé par le modérateur sur le site
Salut, cela fonctionne très bien, mais uniquement lors de la modification manuelle des données dans le tableau.

J'ai un tableau filtré de style 'top ten/leader board' qui est rempli à partir de la saisie de données sur une feuille de calcul séparée (en fait, les données passent par 3 feuilles de calcul avant d'arriver à la table). Lorsque les données sont modifiées dans la feuille de saisie de données, les chiffres du tableau des leaders sont mis à jour, mais le filtre ne s'actualise pas automatiquement.
Des idées sur la façon de faire cela?
Infiniment reconnaissant.
Alex
Ce commentaire a été minimisé par le modérateur sur le site
J'ai elle le même problème. Quelqu'un peut-il nous aider?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai le même problème. J'essaie de filtrer automatiquement la feuille 2 qui contient des données provenant de la feuille 1. cela ne fonctionne que si je modifie les données sur la feuille 2, pas sur la feuille 1.
Des idées sur pourquoi cela ne fonctionne pas et comment y remédier?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, cela semble fonctionner très bien, mais j'ai des problèmes lorsqu'il y a plus d'un filtre sur la même feuille de calcul (onglet). J'ai converti la plage de cellules en un tableau pour permettre des filtres séparés et multiples dans la même feuille de calcul. Cet exemple ne semble mettre à jour qu'un seul des tableaux/filtres. Des suggestions sur la façon de mettre à jour TOUS les tableaux/filtres dans une feuille de calcul ?

Merci beaucoup,

Tom
Ce commentaire a été minimisé par le modérateur sur le site
Salut Tom
Le code de cet article fonctionne bien pour plusieurs tables dans une feuille de calcul, il vous suffit d'appuyer sur la touche Entrée après avoir modifié les données au lieu de cliquer sur une autre cellule.
Essayez-le.
Ce commentaire a été minimisé par le modérateur sur le site
terima Kasih

sangat membantu
Ce commentaire a été minimisé par le modérateur sur le site
Cela ne fonctionne pas avec le filtre basé sur la sélection de liste https://www.extendoffice.com/documents/excel/4113-excel-filter-based-on-list-selection.html
Ce commentaire a été minimisé par le modérateur sur le site
Génial et simple à faire. Merci beaucoup!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

Ce code fonctionne très bien, merci beaucoup.

J'ai cependant un petit problème avec ça - si je change les valeurs dans une cellule qui ne fait pas partie de la table, on me présente une erreur d'exécution disant :

"Erreur d'exécution '91' :

Variable d'objet ou Avec variable de bloc non configurée"


J'ai des options pour déboguer ou terminer, l'option pour continuer est grisée. Je peux cliquer sur "Fin" et le code fonctionne toujours, mais il est très ennuyeux de devoir gérer cette fenêtre contextuelle après chaque modification.

Quelqu'un a une expérience similaire ou une suggestion sur la façon de trier cela?

Merci !
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour David,
Pour résoudre votre problème, vous pouvez appliquer le code suivant :

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

S'il vous plaît essayez-le, j'espère que cela peut vous aider!
Ce commentaire a été minimisé par le modérateur sur le site
Salut Skyyang,


J'ai implémenté votre solution et elle est effectivement corrigée.

Merci beaucoup!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour j'ai eu le même problème, collé le nouveau code et changé le nom de la feuille mais ensuite rien ne se passe, le filtre ne se met pas à jour
Ce commentaire a été minimisé par le modérateur sur le site
même problème ici aussi, une solution mise à jour?
Ce commentaire a été minimisé par le modérateur sur le site
Je n'arrive pas à faire fonctionner cela du tout sur office 365
Aucune suggestion
Ce commentaire a été minimisé par le modérateur sur le site
Salut, merci beaucoup pour l'aide. Quelque chose ne fonctionne pas bien pour moi. Voici l'histoire.

Sheet1 contient des données variables. Sheet3 contient des données statiques et un filtre. Les critères de filtre sur "Sheet3" proviennent de Sheet1. Sheet1 contient des données provenant de résultats filtrés sur Sheet3.

Sheet3 a le code :

Private Sub Worksheet_SelectionChange (Cible ByVal en tant que plage)
Range("A1:U14").AdvancedFilter Action :=xlFilterCopy, CriteriaRange:=Range("A22:U23"), CopyToRange:=Range("A25:U26"), Unique :=False
End Sub

Cela fonctionne très bien si je fais quelque chose sur Sheet3. Pas de problème. Merci!

Au début, j'avais du code sur Sheet1 :

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Ce qui a entraîné l'erreur "Erreur d'exécution 91, variable d'objet ou avec bloc non défini".

J'ai changé le code basé sur les commentaires pour être:

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
End Sub

Maintenant, je n'obtiens pas d'erreur, mais les données sur Sheet3 et donc Sheet1 ne changent pas. En d'autres termes, l'événement d'application du filtre à Sheet3 ne se produit pas lorsque j'apporte une modification à Sheet1. Peu importe si je frappe ou cliquez sur une autre cellule après avoir modifié la cellule des critères de filtre Sheet3 définie sur Sheet1.

En passant, je m'attends à ce que si je voulais avoir plusieurs cellules sur Sheet1 qui provoquaient des filtres sur Sheets 4 et 5 en plus de Sheet3, j'aurais besoin du code sur Sheet 1 pour lire:

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
On Error Resume Next
Sheets("Sheet3").AutoFilter.ApplyFilter
Sheets("Sheet4").AutoFilter.ApplyFilter
Sheets("Sheet5").AutoFilter.ApplyFilter
End Sub

Merci encore!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour,

C'est un bon morceau de code merci. Le seul problème que j'ai est que j'utilise une liste déroulante sur une feuille de graphique séparée. Si je modifie manuellement la valeur dans la cellule associée à la liste déroulante, cela fonctionne. Mais lorsque j'essaie d'utiliser simplement le menu déroulant, il ne se met pas à jour. Des pensées?
Ce commentaire a été minimisé par le modérateur sur le site
J'ai en fait des données d'un autre fichier Excel qui a été importé dans une feuille Excel avec le nom "Base de données". Ensuite j'importe ces données dans le même fichier Excel mais dans une autre ExcelSheet "Aperçu". Je souhaite que lorsque les données changent dans la source d'origine, que le filtre s'applique dans la feuille "Vue d'ensemble". Merci d'avance pour celui qui pourra m'aider :). PS ne peut pas utiliser VBA dans la première feuille Excel
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL