Comment filtrer automatiquement les lignes en fonction de la valeur d'une cellule dans Excel ?
Dans Excel, la fonction de filtre standard offre un moyen rapide de filtrer des données en fonction des critères que vous sélectionnez manuellement. Cependant, dans certains flux de travail, vous pourriez souhaiter que vos données se mettent à jour automatiquement dès que vous saisissez une valeur ou une condition dans une cellule spécifique. Par exemple, si vous souhaitez que l'ensemble de données soit filtré instantanément en fonction d'un mot-clé ou d'un paramètre entré dans une autre cellule, cela dépasse les capacités natives de filtrage d'Excel. Ce type de filtre dynamique ou « auto-filtre » peut aider à rationaliser votre processus de révision des données, réduire le temps passé sur le filtrage manuel et augmenter la précision en liant directement les conditions de filtre aux valeurs des cellules. Si vous cherchez à mettre en œuvre un tel mécanisme de filtrage automatique basé sur la saisie dans une cellule, plusieurs solutions pratiques sont disponibles pour obtenir ce résultat.
Filtrer automatiquement les lignes en fonction de la valeur de cellule saisie avec du code VBA
Filtrer automatiquement les lignes en fonction de la valeur d'une cellule avec une solution de formule Excel
Si vous préférez une approche sans macro ou devez éviter d'utiliser VBA en raison des paramètres de sécurité ou des préoccupations de collaboration, vous pouvez créer un effet d'« autofiltre » en utilisant une combinaison de formules et des fonctionnalités de filtrage intégrées dans Excel. Cette solution fonctionne bien pour Microsoft 365, Microsoft 2019 et les versions ultérieures qui prennent en charge les fonctions de tableau dynamique telles que FILTER
. Elle est particulièrement adaptée pour être partagée avec des collègues qui n'ont peut-être pas activé les macros, ou pour des modèles légers où une automatisation sans installation est nécessaire.
1. Sélectionnez une cellule vide où vous souhaitez que vos résultats filtrés commencent (par exemple, placez votre curseur dans la cellule G2).
=FILTER(A2:C20, (A2:A20=E1) * (B2:B20=E2), "No match")
2. Après avoir entré la formule dans G2, appuyez sur Entrée. L'ensemble de données filtré apparaîtra dans une plage de débordement commençant à partir de la cellule G2. Lorsque vous modifiez les valeurs dans E1 ou E2, la liste filtrée se met à jour instantanément.
Cet exemple de formule suppose que vos données principales se trouvent dans A2:C20 et que les critères de filtre sont entrés dans E1 (correspondant à la colonne A) et E2 (correspondant à la colonne B). Si vous souhaitez filtrer par une seule colonne, vous pouvez simplifier la condition logique en conséquence. Le message « Pas de correspondance » apparaît s'il n'y a aucune ligne correspondant aux critères entrés.
Astuce : La fonction FILTER est disponible dans Microsoft 365 et certaines versions de Microsoft 19+. Pour les versions plus anciennes d'Excel, le filtrage dynamique via des formules est moins simple, et vous pourriez envisager des colonnes d'aide combinées avec le filtre AutoFilter traditionnel ou des fonctionnalités de filtre avancé. Vérifiez votre version pour assurer la compatibilité.
Lors de l'utilisation de cette solution, les résultats occupent une nouvelle zone de votre feuille de calcul, ce qui aide à préserver vos données brutes. Cependant, l'ensemble de données original reste inchangé — les filtres s'appliquent uniquement aux résultats affichés, pas à l'état d'affichage des données sources.
Erreurs potentielles : Si vous voyez une erreur #NOM? ou #DÉBORDEMENT!, vérifiez que vous utilisez une version compatible d'Excel et qu'il n'y a pas de cellules fusionnées dans la plage de résultats. De plus, évitez de placer d'autres données dans la zone de débordement de la formule pour éviter tout blocage.
Filtrer automatiquement les lignes en fonction de la valeur de cellule saisie avec du code VBA
Supposons que vous travailliez avec un ensemble de données et souhaitiez filtrer automatiquement les enregistrements en fonction de critères que vous tapez dans des cellules spécifiques. Par exemple, lorsque vous remplissez vos conditions souhaitées dans les cellules E1 et E2, les données sur la feuille de calcul sont filtrées automatiquement pour correspondre à ces valeurs, comme illustré ci-dessous :
Pour automatiser le filtrage de cette manière, vous pouvez configurer une solution VBA simple. Cette méthode se déclenche chaque fois que vous mettez à jour la valeur dans vos cellules de filtre désignées. Elle est particulièrement utile pour les tableaux de bord, les rapports interactifs ou les modèles dans lesquels les utilisateurs s'attendent à un filtrage dynamique à partir de cellules de paramètres centrales.
1. Allez dans la feuille de calcul où vous souhaitez automatiser le filtrage des lignes en fonction des entrées saisies dans les cellules.
2. Faites un clic droit sur l'onglet de la feuille en bas de la fenêtre Excel et choisissez Afficher le code dans le menu contextuel. Dans la fenêtre Microsoft Visual Basic pour Applications qui apparaît, collez le code VBA suivant dans la grande zone vide (communément appelée fenêtre de code ou module de feuille de calcul), comme indiqué ici :
Code VBA : Filtrer automatiquement les données en fonction de la valeur de cellule saisie
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
If Target.Address = Range("E2").Address Then
Range("A1:C20").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("E1:E2")
End If
End Sub
Remarque : Dans ce code VBA, A1:C20 fait référence à votre plage de données à laquelle appliquer le filtre. E2 est la cellule où vous entrez la valeur de filtre (vos critères cibles), et E1:E2 sont les cellules utilisées comme conditions de filtre. Vous pouvez modifier ces plages selon vos besoins — assurez-vous qu'elles reflètent précisément l'emplacement de vos données et de vos critères de filtre pour la structure spécifique de votre feuille de calcul. De plus, il est préférable d'éviter les cellules fusionnées et de vous assurer que votre plage de données contient des en-têtes si nécessaire pour un filtrage précis.
3. Maintenant, entrez ou modifiez vos conditions de filtre dans les cellules E1 et/ou E2. Une fois que vous appuyez sur Entrée, le code VBA s'exécute automatiquement et filtre la plage de données désignée pour ne montrer que les lignes correspondant à vos critères d'entrée.
Si le filtre ne semble pas fonctionner immédiatement après avoir entré une valeur, assurez-vous que la fonctionnalité des macros est activée dans votre classeur, et vérifiez que les plages dans le code VBA correspondent correctement à la disposition actuelle de votre feuille de calcul. Dans des scénarios multi-utilisateurs, rappelez aux autres que les macros doivent être activées pour que cette fonctionnalité fonctionne correctement.
Cette méthode VBA est particulièrement avantageuse pour les tableaux de bord pilotés par des paramètres dynamiques, les modèles interactifs pour la saisie de données, ou tout scénario dans lequel l'application manuelle des critères de filtre serait inefficace. Cependant, notez que les utilisateurs peuvent rencontrer des problèmes s'ils désactivent les macros, et les solutions basées sur VBA sont spécifiques au fichier dans lequel le code est ajouté.
Si votre scénario nécessite des changements fréquents de critères par plusieurs utilisateurs ayant des paramètres de sécurité Excel variables, ou si vous prévoyez de partager largement votre fichier, vous pourriez envisager des solutions alternatives basées sur des formules ou des compléments Excel.
Démo : Filtrer automatiquement les lignes en fonction de la valeur de cellule saisie avec du code VBA
Filtrer les données par plusieurs critères ou d'autres conditions spécifiques, telles que par longueur de texte, par sensibilité à la casse, etc. Lorsque vous avez besoin d'effectuer des opérations de filtrage avancées — comme combiner plusieurs critères de filtre, filtrer par la longueur du texte, par sensibilité à la casse ou filtrer en fonction de périodes spécifiques — les filtres natifs d'Excel peuvent être insuffisants. Dans de tels scénarios, la fonction Super Filtre de Kutools pour Excel fournit un moyen pratique de gérer facilement et efficacement des exigences de filtrage complexes. Cette fonction vous permet de :
Kutools pour Excel : Équipé de plus de 300 compléments Excel pratiques, essai gratuit complet pendant 30 jours. Téléchargez et essayez gratuitement maintenant ! |
Meilleurs outils de productivité Office
Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification 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, au lieu d’ouvrir de nouvelles fenêtres.
- Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!