Comment filtrer un tableau croisé dynamique en fonction de la valeur d’une cellule spécifique dans Excel ?
Dans Excel, les tableaux croisés dynamiques sont largement utilisés pour résumer, analyser et explorer efficacement les données. Par défaut, le filtrage au sein d’un tableau croisé dynamique s’effectue généralement en sélectionnant les éléments souhaités dans le menu déroulant du filtre. Bien que cette méthode offre une grande flexibilité, certaines situations exigent une approche de filtrage plus dynamique — par exemple, lorsque vous souhaitez que les résultats du tableau croisé dynamique s’ajustent automatiquement en fonction de la valeur saisie dans une cellule spécifique de la feuille de calcul. Cette fonctionnalité s’avère particulièrement utile pour créer des tableaux de bord percutants, automatiser des flux de travail ou concevoir des rapports interactifs accessibles aux utilisateurs finaux peu familiers avec le filtrage manuel.
Excel ne propose pas de fonctionnalité native permettant de lier directement la valeur d’une cellule à un filtre de tableau croisé dynamique sans recourir au code. Toutefois, plusieurs méthodes pratiques répondent à ce besoin, chacune offrant ses propres avantages et points à considérer. Ce tutoriel présente d’abord une solution VBA simple pour connecter une cellule au filtre d’un tableau croisé dynamique, afin que celui-ci se mette à jour instantanément dès que la valeur de la cellule change. Nous explorerons également des alternatives telles que l’utilisation de formules Excel (par exemple, DONNEES.TABCROISDYNAM ou FILTRE) pour afficher des résultats filtrés, ainsi que le recours aux barres de segmentation comme commandes graphiques de filtrage. Maîtriser ces options vous permet de choisir l’approche la mieux adaptée à votre flux de travail Excel et à l’expérience utilisateur souhaitée.

➤ Filtrer un Tableau croisé dynamique en fonction d’une valeur de cellule spécifique à l’aide d’un code VBA
➤ Formule Excel – Afficher les résultats filtrés d’un Tableau croisé dynamique en fonction d’une valeur de cellule
➤ Autres méthodes intégrées d’Excel – Utiliser les segments comme filtres interactifs de tableau croisé dynamique
Filtrer un Tableau croisé dynamique en fonction de la valeur d’une cellule spécifique à l’aide d’un code VBA
Si vous recherchez une interactivité véritablement dynamique — c’est-à-dire que la saisie d’une valeur dans une cellule mette automatiquement à jour le filtre de votre Tableau croisé dynamique — le VBA s’impose comme une solution directe. Cette approche est particulièrement efficace pour les tableaux de bord, les modèles partagés avec vos collègues ou toute situation nécessitant des ajustements rapides du filtre via la simple modification d’une seule cellule. Attention toutefois : cette méthode exige des connaissances de base en édition VBA, et, comme pour toutes les macros, votre classeur doit impérativement être enregistré dans un format compatible ().xlsm).
Le code VBA suivant vous permet de lier dynamiquement une cellule de votre feuille de calcul au filtre d’un tableau croisé dynamique. Suivez attentivement les étapes ci-dessous et pensez à adapter le nom de la feuille, celui du tableau croisé dynamique ainsi que la référence du champ en fonction des spécificités de votre classeur :
Étape 1 :Saisissez la valeur selon laquelle vous souhaitez filtrer votre tableau croisé dynamique dans une cellule de la feuille de calcul (par exemple, saisissez ou sélectionnez la valeur de filtrage dans la cellule)H6).
Étape 2 : Ouvrez la feuille de calcul contenant votre tableau croisé dynamique cible. Cliquez avec le bouton droit sur l’onglet de la feuille en bas d’Excel, puis sélectionnez Afficher le code dans le menu contextuel. La fenêtre de l’éditeur VBA associée à la feuille s’ouvre alors.

Étape 3 :Dans la fenêtre Microsoft Visual Basic pour Applications(VBA) qui s’ouvre, collez le code suivant dans le module de code de la feuille (et non dans un module standard) :
Code VBA : Filtrer un Tableau croisé dynamique en fonction de la valeur d’une cellule
Private Sub Worksheet_Change(ByVal Target As Range)
' Mis à jour par Extendoffice 20180702
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
On Error Resume Next
If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
Set xPFile = xPTable.PivotFields("Category")
xStr = Target.Text
xPFile.ClearAllFilters
xPFile.CurrentPage = xStr
Application.ScreenUpdating = True
End Sub 📝 Remarques :
- « Sheet1 » est la feuille de calcul contenant le tableau croisé dynamique. Ajustez-la si nécessaire.
- « PivotTable2 » est le nom de votre tableau croisé dynamique. Vous pouvez le trouver dans l’onglet Analyse de tableau croisé dynamique.
- « Category » est le champ que vous souhaitez filtrer. Il doit correspondre exactement au nom de la condition.
- H6 est la cellule de filtrage. Assurez-vous que la valeur correspond à un élément de la liste de filtre.
- Les valeurs de filtre doivent correspondre exactement, caractère pour caractère. La moindre faute de frappe ou la présence d’espaces superflus peut entraîner des erreurs ou des résultats vides.
Étape 4 : Appuyez sur Alt + Q pour fermer l’éditeur VBA et revenir à Excel.
Votre tableau croisé dynamique se filtre désormais automatiquement pour n’afficher que les données correspondant à la valeur saisie dans la cellule H6. Cette macro s’exécute à chaque modification de la valeur en H6, vous permettant d’ajuster votre synthèse de données en temps réel.

Vous pouvez modifier à tout moment la valeur dans la cellule de filtrage : le tableau croisé dynamique se met à jour instantanément dès que le contenu de la cellule est modifié ou remplacé.

Dépannage :
- Vérifiez que les macros sont bien activées dans votre classeur.
- Vérifiez attentivement que la feuille de calcul, le tableau croisé dynamique et le nom de la condition correspondent bien à votre configuration réelle.
- Vérifiez que la valeur du filtre en H6 correspond exactement à celles du tableau croisé dynamique.
- Cette approche VBA fonctionne pour les filtres à champ unique. Pour plusieurs champs, un script supplémentaire est requis.
Formule Excel – Afficher les résultats filtrés du Tableau croisé dynamique en fonction de la valeur d’une cellule
Pour les utilisateurs qui préfèrent ne pas activer les macros, Excel propose des méthodes basées sur des formules pour afficher les résultats du tableau croisé dynamique en fonction de la valeur d’une cellule spécifique. Même si des fonctions telles que DONNEES.TABCROISDYNAM et FILTRE ne modifient pas directement les paramètres de filtre du tableau croisé dynamique, elles permettent de référencer et de présenter dynamiquement des résultats synthétiques qui réagissent aux saisies de l’utilisateur.
Cette solution s’avère particulièrement utile pour créer des tableaux de synthèse personnalisés, des tableaux de bord ou des rapports qui reflètent des critères évolutifs définis par l’utilisateur — le tout sans altérer la vue originale du tableau croisé dynamique.
Utilisation de DONNEES.TABCROISDYNAM :
Supposons que votre tableau croisé dynamique (nommé)« PivotTable2 ») résume les ventes par catégorie, et que la valeur de filtrage soit saisie dans la cellule H6. Vous pouvez utiliser la fonction DONNEES.TABCROISDYNAM pour afficher le total des ventes correspondant à la catégorie indiquée en H6 :
1.Sélectionnez la cellule dans laquelle vous souhaitez afficher le résultat synthétique (par exemple,)I6) :
=GETPIVOTDATA("Sum of Sales", $A$4, "Category", $H$6) 2. Appuyez sur Entrée. Lorsque vous modifiez la valeur en H6, le résultat en I6 est mis à jour automatiquement pour refléter la synthèse correspondante issue du Tableau croisé dynamique.
Si votre tableau croisé dynamique utilise un nom de champ ou une disposition différente, adaptez la formule en conséquence. Pour générer automatiquement une formule DONNEES.TABCROISDYNAM, saisissez = dans une cellule, puis cliquez sur une cellule contenant une valeur de votre tableau croisé dynamique. Excel insérera alors la formule appropriée, que vous pourrez ensuite personnaliser selon vos besoins.
Utilisation de FILTRE avec un tableau auxiliaire :
Si vous souhaitez extraire des enregistrements détaillés à partir de votre jeu de données d’origine (plutôt que des synthèses issues d’un Tableau croisé dynamique), et que vous utilisez Excel 365 ou Excel 2019, la fonction FILTREpermet un filtrage dynamique basé sur la valeur d’une cellule :
Supposons que vos données sources se trouvent dans la plage A1:C100 et que la colonne Category corresponde à la colonne A.
1.Sélectionnez la cellule de départ où les enregistrements filtrés doivent apparaître (par exemple,)J6):
=FILTER(A2:C100, A2:A100 = H6, "No data") 2. Appuyez sur Entrée. Les lignes correspondantes se propagent automatiquement dans les cellules adjacentes, listant tous les enregistrements dont la catégorie correspond à la valeur située en H6. La mise à jour de H6 actualise instantanément les résultats.
Pour faire correspondre des regroupements de tableau croisé dynamique ou appliquer un filtre selon plusieurs critères, envisagez de combiner DONNEE.TABLO et FILTRE, ou d’enrichir votre formule avec des conditions logiques supplémentaires.
📝 Conseils et avertissements :
- Ces formules ne modifient pas le filtre réel du Tableau croisé dynamique. Elles fournissent uniquement une vue distincte et dynamique basée sur les valeurs des cellules.
- Pour modifier directement les filtres du Tableau croisé dynamique, du code VBA est requis.
- Assurez-vous que les noms de condition utilisés dans la fonction
DONNEES.TABCROISDYNAMcorrespondent exactement à ceux du tableau croisé dynamique (y compris la casse et les espaces). - Si vous voyez des erreurs
#REF!, vérifiez que vos références sont valides et que la structure de votre tableau croisé dynamique n’a pas été modifiée.
Autres méthodes intégrées d’Excel – Utilisez les segments comme filtres interactifs pour Tableau croisé dynamique
Si les solutions basées sur VBA ou les formules ne répondent pas parfaitement à vos besoins, les segments d’Excel offrent une alternative interactive pour filtrer un tableau croisé dynamique. Les segments sont des commandes de filtrage visuelles qui permettent de trier les données en un simple clic. Même s’ils ne peuvent pas être directement liés à des valeurs de cellule — ce qui signifie que vous ne pouvez pas contrôler un segment en modifiant une cellule — ils restent intuitifs et particulièrement efficaces pour les tableaux de bord et les rapports destinés aux utilisateurs non techniques.
Comment ajouter et utiliser un segment :
- Sélectionnez n’importe quelle cellule de votre Tableau croisé dynamique.
- Accédez à l’onglet Analyse de tableau croisé dynamique(ou à l’onglet)Analyse dans les anciennes versions), puis cliquez sur Insérer une barre de segmentation.
- Dans la boîte de dialogue Insérer des barres de segmentation, cochez le champ selon lequel vous souhaitez filtrer (par exemple,)Category), puis cliquez sur OK.
- La barre de segmentation apparaît sur votre feuille de calcul. Cliquez sur un bouton pour filtrer le tableau croisé dynamique selon cette valeur. Maintenez la touche Ctrl enfoncée pour sélectionner plusieurs éléments.
Les segments peuvent être mis en forme, redimensionnés et liés à plusieurs Tableau croisé dynamique afin de synchroniser le filtrage entre différents rapports. Ils sont particulièrement utiles dans les tableaux de bord ou les classeurs partagés lorsque les utilisateurs ne sont pas à l’aise avec les filtres déroulants mais ont tout de même besoin de filtrer facilement les données sans recourir à VBA ni modifier des formules.
Limitations : Les segments ne permettent pas nativement d’être liés à des valeurs de cellule. Si votre flux de travail exige un filtrage dynamique piloté par une saisie dans une cellule, les segments doivent être considérés comme un outil complémentaire plutôt que comme un substitut aux méthodes utilisant VBA ou des formules.
De plus, si vos données sont stockées dans un Tableau Excel (et non dans un Tableau croisé dynamique), vous pouvez toujours utiliser des segments en sélectionnant le tableau, puis en accédant à l’onglet Création de tableau > Insérer un segment.
Dépannage : Si le segment ne semble pas filtrer le tableau croisé dynamique, vérifiez les connexions de rapport(sous l’onglet)Segment ou Analyse) pour vous assurer qu’il est bien connecté au(x) tableau(x) croisé(s) dynamique(s) concerné(s).
Chacune des méthodes ci-dessus répond à un objectif différent : VBA permet un filtrage direct lié à une cellule, les formules offrent un affichage dynamique des résultats, et les segments proposent un filtrage graphique convivial. Choisissez l’approche qui correspond le mieux à vos besoins en automatisation, flexibilité et facilité d’utilisation. Les filtres déroulants traditionnels de tableau croisé dynamique restent disponibles comme solution de secours de base.
Articles associés :
- Comment regrouper plusieurs feuilles en un seul tableau croisé dynamique dans Excel ?
- Comment créer un Tableau croisé dynamique à partir de Fichier texte dans Excel ?
- Comment lier le filtre Tableau croisé dynamique à une cellule spécifique dans Excel ?
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre 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 rend votre travail bien plus facile
- Activez 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é de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels