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 selon des critères que vous sélectionnez manuellement. Cependant, dans certains flux de travail, vous pourriez souhaiter que vos données se rafraîchissent 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 immédiatement filtré en fonction d'un mot-clé ou d'un paramètre que vous entrez dans une autre cellule, cela dépasse les capacités de filtrage natives 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 d'auto-filtrage basé sur l'entrée d'une cellule, plusieurs solutions pratiques sont disponibles pour atteindre ce résultat.
Filtrer automatiquement les lignes en fonction de la valeur saisie dans une cellule 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 liées à la collaboration, vous pouvez créer un effet de "filtre automatique" en combinant des formules et des fonctions 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 convient particulièrement pour partager 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 par 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 filtrage 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 avancées de filtre. 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. Toutefois, l'ensemble de données d'origine reste inchangé — les filtres s'appliquent uniquement aux résultats affichés, et non au statut 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 les blocages.
Filtrer automatiquement les lignes en fonction de la valeur saisie dans une cellule avec du code VBA
Supposons que vous travailliez avec un ensemble de données et souhaitiez filtrer les enregistrements automatiquement en fonction de critères que vous saisissez dans des cellules spécifiques. Par exemple, lorsque vous remplissez vos conditions souhaitées dans les cellules E1 et E2, les données de la feuille de calcul sont automatiquement filtrées 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 centraux.
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 for 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 saisie dans une cellule
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 à filtrer. E2 est la cellule où vous saisissez 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 avec précision l'emplacement de vos données et des 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, saisissez 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 saisi 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 présente un avantage particulier 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 une ré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 peut-être des paramètres de sécurité Excel variables, ou si vous prévoyez de partager votre fichier largement, 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 saisie dans une cellule avec du code VBA
Filtrer des données selon plusieurs critères ou d'autres conditions spécifiques, telles que par longueur de texte, sensibilité à la casse, etc. Lorsque vous avez besoin d'effectuer des opérations de filtrage plus avancées — telles que combiner plusieurs critères de filtre, filtrer par la longueur du texte, la 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 modules complémentaires pratiques pour Excel, essai gratuit entièrement fonctionnel pendant 30 jours. Télécharger et essayer gratuitement maintenant ! |
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
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, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !