Comment lier un filtre de tableau croisé dynamique à une cellule spécifique dans Excel ?
Dans Excel, il est fréquent de vouloir créer des rapports interactifs dans lesquels votre filtre Tableau croisé dynamique reflète la valeur contenue dans une cellule spécifique. Cela permet aux utilisateurs de sélectionner ou de saisir une valeur de filtre à un seul endroit, et le Tableau croisé dynamique se met alors à jour dynamiquement en fonction de cette entrée. Cette méthode est particulièrement utile lors de la conception de tableaux de bord ou d’interfaces Définir les conditions de filtre destinées à l’exploration des données.
Cet article propose plusieurs solutions pratiques, notamment une approche basée sur VBA ainsi que d’autres méthodes intégrées à Excel, afin de vous aider à lier un filtre Tableau croisé dynamique à la valeur d’une cellule ou à obtenir des effets similaires de reporting dynamique.
- Lier le filtre Tableau croisé dynamique à une cellule donnée à l’aide d’un code VBA
- Formule Excel – Combinez des formules (par exemple, GETPIVOTDATA) avec des références de segment ou de filtre de rapport pour des analyses encore plus puissantes.
- Autres méthodes intégrées d’Excel – Connecter les segments Tableau croisé dynamique et les tableaux de bord pour un filtrage interactif
Lier le filtre Tableau croisé dynamique à une cellule donnée à l’aide d’un code VBA
Si vous avez besoin d’un lien direct entre une cellule et un filtre de tableau croisé dynamique — de sorte que la modification de la valeur de la cellule mette automatiquement à jour le filtre du tableau croisé dynamique — VBA constitue une solution idéale. Cette approche est particulièrement adaptée aux tableaux de bord ou rapports interactifs, où les utilisateurs souhaitent piloter rapidement des tranches de données depuis une seule cellule.
Pour que cette technique fonctionne, votre tableau croisé dynamique doit inclure un champ de filtre. Le nom de ce champ est essentiel pour configurer correctement le code VBA.
Prenons l’exemple suivant : le tableau croisé dynamique inclut un champ de filtre intitulé Catégorie, avec deux valeurs disponibles : « Dépenses » et « Ventes ». En liant une cellule à ce filtre de tableau croisé dynamique, vous pouvez contrôler les données affichées simplement en saisissant « Dépenses » ou « Ventes » dans la cellule sélectionnée.

Pour mettre cela en œuvre :
- Sélectionnez la cellule que vous souhaitez utiliser comme contrôleur de filtre (par exemple, la cellule H6) et saisissez-y à l’avance l’une des valeurs de votre filtre. Assurez-vous que cette valeur corresponde exactement à l’une de celles figurant dans le champ de filtre du tableau croisé dynamique.
- Accédez à la feuille contenant votre tableau croisé dynamique. Cliquez avec le bouton droit sur l’onglet de la feuille, puis choisissez Afficher le code dans le menu. La fenêtre Visual Basic pour Applications s’ouvre alors.

Dans la fenêtre Microsoft Visual Basic pour Applications, collez le code VBA suivant dans le volet de code.
Code VBA : Lier le filtre Tableau croisé dynamique à une cellule donnée
Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
Dim xPTable As PivotTable
Dim xPFile As PivotField
Dim xStr As String
On Error Resume Next
If Intersect(Target, Range("H6")) 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 :
Après avoir collé le code, appuyez sur Alt + Q pour fermer la fenêtre de l’éditeur VBA et revenir à Excel.
Désormais, le filtre de votre tableau croisé dynamique est piloté par la valeur contenue dans la cellule H6. Il vous suffit de modifier cette cellule en saisissant « Ventes » ou « Dépenses » pour que votre tableau croisé dynamique se mette à jour instantanément. En cas de problème, assurez-vous que la valeur indiquée dans la cellule correspond exactement à l’une des options disponibles dans le filtre du tableau croisé dynamique et que les noms utilisés dans votre code sont correctement attribués.

À chaque modification du contenu de la cellule, votre tableau croisé dynamique met automatiquement à jour ses données filtrées.

Conseils et dépannage : si la valeur saisie dans la cellule ne correspond pas exactement aux éléments disponibles dans le champ de filtre — y compris en ce qui concerne la casse et les espaces — le code risque de ne pas appliquer le filtre comme prévu. Vérifiez toujours que les noms de vos champs et tableaux sont orthographiés correctement dans le code VBA. Si vous souhaitez appliquer cette configuration à plusieurs tableaux croisés dynamiques, vous pouvez adapter davantage le code ou l’étendre à l’aide de boucles.

Libérez la magie d’Excel avec Kutools IA
- Exécution intelligente : effectuez des opérations sur les cellules, analysez des données et créez des graphiques, le tout à partir de commandes simples.
- formules personnalisées : créez des formules sur mesure pour rationaliser vos flux de travail.
- Programmation VBA : Écrivez et implémentez du code VBA en toute simplicité.
- Interprétation de formules : Décryptez facilement les formules complexes.
- Traduction de texte : Franchissez les barrières linguistiques directement depuis vos feuilles de calcul.
Formule Excel – Combinez des formules (par exemple, GETPIVOTDATA) avec des références de segment ou de filtre de rapport pour des analyses encore plus puissantes.
Bien qu’Excel n’offre pas de méthode purement native fondée sur des formules pour lier directement le filtre d’un tableau croisé dynamique à une cellule, vous pouvez créer un reporting dynamique et afficher des valeurs pertinentes à l’aide de formules telles que GETPIVOTDATA, combinées à des segments ou à des filtres de rapport. Cette approche s’avère particulièrement utile lorsque vous souhaitez concevoir des tableaux de bord dont les indicateurs clés se mettent à jour instantanément en fonction d’une sélection de filtre ou d’une saisie dans une autre cellule, rendant ainsi votre analyse de données plus interactive.
Les cas d’usage incluent les tableaux de bord dynamiques, les panneaux de reporting ou les synthèses comparatives dans lesquels vous souhaitez que les résultats affichés s’ajustent automatiquement aux sélections effectuées via un segment ou reflètent les données liées au contenu d’une cellule. L’avantage principal réside dans l’efficacité de cette méthode pour présenter des données récapitulatives toujours à jour. Toutefois, l’état réel du filtre du tableau croisé dynamique ne peut pas être défini programmatiquement par une formule de cellule seule.
Exemple : Affichage du récapitulatif Tableau croisé dynamique en fonction de la valeur d’une cellule
Supposons que vous disposiez d’un tableau croisé dynamique récapitulant les ventes par Catégorie (par exemple, « Ventes », « Dépenses »). Vous pouvez utiliser la fonction GETPIVOTDATA pour extraire la valeur correspondant à une catégorie spécifiée dans une cellule.
1. Supposons que la cellule H6 contienne la catégorie à afficher (par exemple, « Ventes »). Saisissez la formule suivante dans votre cellule de synthèse (par exemple, I6) :
=GETPIVOTDATA("Sum of Amount",$B$4,"Category",H6) 2. Après avoir saisi la formule en I6, appuyez sur Entrée. Désormais, chaque fois que vous modifierez H6 en une catégorie valide (comme « Dépenses » ou « Ventes »), I6 se mettra immédiatement à jour pour afficher le total correspondant à cette catégorie, conformément au Tableau croisé dynamique actuel.
- Le premier argument « Somme de Montant » doit être remplacé par le nom réel du champ **Valeurs** de votre tableau croisé dynamique (par exemple, « Chiffre d’affaires total » ou toute autre étiquette que vous utilisez pour vos valeurs). De même, **$B$4** doit être remplacé par la référence d’une cellule spécifique située dans votre tableau croisé dynamique ; Excel reconnaîtra automatiquement cette référence et l’associera au bon tableau croisé dynamique pour que la fonction **GETPIVOTDATA** fonctionne parfaitement.
- Pour obtenir la syntaxe exacte de votre fonction GETPIVOTDATA, cliquez dans une cellule de votre tableau croisé dynamique et faites-y référence : Excel génère automatiquement la syntaxe adéquate. Veillez à ce que H6 corresponde à l’une des catégories présentes dans le tableau afin d’obtenir des résultats précis.
Astuce : bien que cette méthode ne modifie pas le filtre directement dans le Tableau croisé dynamique, elle affiche efficacement les données résultantes comme si elles avaient été filtrées selon la cellule cible, offrant ainsi un affichage dynamique lié à votre saisie. Vous pouvez également exploiter cette approche pour alimenter des graphiques, des tableaux récapitulatifs ou des tableaux de bord.
Dépannage : si la formule renvoie une erreur #REF! ou #VALUE!, vérifiez que vos références de cellule sont correctes, que la catégorie saisie existe dans votre tableau croisé dynamique et que le nom du champ ou de la somme correspond exactement.
Autres méthodes intégrées d’Excel – Connecter les segments Tableau croisé dynamique et les tableaux de bord pour un filtrage interactif
Les outils Segment et Filtre de rapport d’Excel proposent des options intégrées et conviviales pour un filtrage interactif, sans nécessiter la moindre ligne de code VBA. Vous pouvez ainsi créer facilement un effet de tableau de bord en reliant plusieurs tableaux croisés dynamiques ou vues à un ou plusieurs segments.
Une approche courante consiste à insérer un segment lié à votre champ de tableau croisé dynamique (par exemple, « Catégorie »). Les utilisateurs cliquent simplement sur les éléments souhaités dans le segment, et le(s) tableau(x) croisé(s) dynamique(s) se met(tent) à jour en conséquence. Si vous disposez de plusieurs tableaux croisés dynamiques basés sur la même plage source, vous pouvez connecter un seul segment à tous les tableaux pour un filtrage synchronisé, ce qui rend votre interface de reporting plus intuitive et cohérente.
Pour créer un segment et l’associer :
- Cliquez dans votre tableau croisé dynamique, puis rendez-vous dans l’onglet Analyse de tableau croisé dynamique(ou)Options, selon votre version d’Excel) > Insérer un segment.
- Cochez le champ souhaité (par exemple,)Catégorie) et cliquez sur OK. Le segment s’affiche alors sur la feuille et permet aux utilisateurs de filtrer visuellement.
- Pour lier un segment à plusieurs tableaux croisés dynamiques, cliquez avec le bouton droit sur le segment, choisissez Connexions de rapport(ou)Connexions de tableau croisé dynamique), puis cochez tous les tableaux croisés dynamiques que vous souhaitez synchroniser.
Cette fonctionnalité est particulièrement puissante dans les scénarios de tableau de bord, où diverses visualisations réagissent ensemble aux filtres appliqués par l’utilisateur.
Avantages : extrêmement facile à utiliser pour la plupart des besoins de filtrage interactif, sans nécessiter de macros ni de code personnalisé. Idéal pour les tableaux de bord ou les rapports partagés où simplicité et fiabilité sont essentielles. La limite réside dans le fait qu’une automatisation directe cellule-vers-filtre (liaison immédiate valeur-vers-filtre) n’est pas prise en charge nativement ; l’affectation directe d’une valeur à un filtre exige l’utilisation de VBA ou d’outils externes.
Dépannage : si un segment ne se connecte pas à plusieurs Tableaux croisés dynamiques, assurez-vous que tous les tableaux sont créés à partir du même cache ou de la même plage source. L’option Connexions de rapportn’apparaît que lorsque les tableaux sont compatibles.
Suggestion résumée : Pour choisir la méthode optimale permettant de lier les filtres de tableau croisé dynamique aux valeurs de cellules ou de créer des tableaux de bord interactifs, prenez en compte le niveau d’automatisation souhaité, les limitations imposées par votre version d’Excel, ainsi que la possibilité (ou non) d’utiliser des macros/VBA dans votre environnement. Pour des besoins simples, les segmentations et les formules (GETPIVOTDATA) offrent des résultats rapides et fiables. En cas d’automatisation avancée, VBA vous garantit un contrôle accru. Veillez toujours à utiliser de manière cohérente le nom de la condition et les éléments de filtre afin d’obtenir des résultats précis. En cas d’erreur, vérifiez les valeurs saisies dans les cellules et assurez-vous que tous les noms correspondent exactement entre le code, les formules et l’ensemble de données.
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 filtrer des Tableau croisé dynamique en fonction de la valeur d’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