Astuce: Les autres langues sont Google-Traduction. Vous pouvez visiter le English version de ce lien.
Se connecter
x
or
x
x
S'enregistrer
x

or

Comment filtrer la table de tableau croisé dynamique en fonction d'une valeur de cellule spécifique dans Excel?

Normalement, nous filtrons les données dans un tableau croisé dynamique en vérifiant les valeurs de la liste déroulante en tant que capture d'écran gauche. Si vous souhaitez dynamiser un tableau croisé dynamique par filtrage, vous pouvez essayer de le filtrer en fonction de la valeur d'une cellule spécifique. La méthode VBA de cet article vous aidera à résoudre le problème.

Filtre Tableau croisé dynamique basé sur une valeur de cellule spécifique avec le code VBA


Sélectionnez facilement des lignes entières en fonction de la valeur de la cellule dans une colonne certian:

Le Sélectionner des cellules spécifiques utilité de Kutools for Excel peut vous aider à sélectionner rapidement des lignes entières basées sur la valeur de la cellule dans une colonne certian dans Excel comme ci-dessous capture d'écran montré. Après avoir sélectionné toutes les lignes en fonction de la valeur de la cellule, vous pouvez les déplacer manuellement ou les copier dans un nouvel emplacement comme vous le souhaitez dans Excel.

Kutools for Excel: avec plus que 200 compléments Excel pratiques, libre d'essayer sans limitation dans les jours 60. Téléchargez l'essai gratuit maintenant!

Onglet Office Activer l'édition et la navigation par onglets dans Office, et simplifiez grandement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, graphiques et autres éléments les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement.
  • Plus que le texte 20 comprend: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Fusionner les outils: Plusieurs classeurs et feuilles en un; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils Split: Fractionner les données en plusieurs feuilles en fonction de la valeur; Un classeur pour plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller Sauter Lignes cachées / filtrées; Compte et somme par couleur de fond; Envoyez des e-mails personnalisés à plusieurs destinataires en bloc.
  • Super filtre: Créez des schémas de filtrage avancés et appliquez-les à toutes les feuilles. Trier par semaine, jour, fréquence et plus; Filtre en gras, formules, commentaires ...
  • Plus que de puissantes fonctionnalités 300; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

Filtre Tableau croisé dynamique basé sur une valeur de cellule spécifique avec le code VBA

Le code VBA suivant peut vous aider à filtrer un tableau croisé dynamique basé sur une valeur de cellule spécifique dans Excel. S'il vous plaît faire comme suit.

1. Veuillez entrer une valeur que vous allez filtrer à l'avance dans une cellule (ici je sélectionne la cellule H6).

2. Ouvrez la feuille de calcul contient le tableau croisé dynamique que vous allez filtrer par valeur de cellule. Cliquez ensuite avec le bouton droit sur l'onglet de la feuille et sélectionnez Afficher le code dans le menu contextuel. Voir la capture d'écran:

3. Dans l'ouverture Microsoft Visual Basic pour applications fenêtre, copiez ci-dessous le code VBA dans la fenêtre Code.

Code VBA: Tableau de tableau croisé dynamique basé sur la valeur de la cellule

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: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: Dans le code,

1) "Sheet1"Est le nom de la feuille de calcul.

2) "PivotTable2"Est le nom de la Table Pivot.

3) Le champ de filtrage dans le tableau croisé dynamique est appelé "Catégories".

4) La valeur que vous voulez filtrer le tableau croisé dynamique est placée dans la cellule H6.

Vous pouvez modifier les valeurs de variables ci-dessus selon vos besoins.v

4. appuie sur le autre + Q les clés pour fermer le Microsoft Visual Basic pour applications fenêtre.

Ensuite, le tableau croisé dynamique est filtré en fonction de la valeur de la cellule H6 comme ci-dessous:

Vous pouvez changer la valeur de la cellule à d'autres selon vos besoins.

Note: Les valeurs que vous tapez dans la cellule H6 doivent correspondre exactement aux valeurs de la liste déroulante Catégorie du tableau croisé dynamique.


Office Tab - Navigation par onglets, édition et gestion de classeurs dans Excel:

Office Tab propose une interface à onglets comme celle des navigateurs Web tels que Google Chrome, les nouvelles versions d'Internet Explorer et Firefox pour Microsoft Excel. Ce sera un outil qui vous permettra de gagner du temps et d’être irremplaçable dans votre travail. Voir ci-dessous la démo:

Cliquez pour l'essai gratuit de l'onglet Office!

Onglet Office pour Excel


Articles Liés:


Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 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 emails ...
  • Super Formula Bar (éditez facilement plusieurs lignes de texte et de formule); Disposition de lecture (facilement lire et éditer un grand nombre de cellules); Coller à la gamme filtrée...
  • Fusionner les cellules / rangées / colonnes sans perdre de données; Contenu des cellules divisées; Combiner les lignes / colonnes en double... Prévenir les cellules en double; Comparer les plages...
  • Sélectionnez Dupliquer ou Unique Des rangées; Sélectionnez les lignes vierges (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux cahiers d'exercices; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de la formule; Créer automatiquement des références à plusieurs feuilles; Insérer des balles, Cases à cocher et plus ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre contenu de cellules et commentaires...
  • 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 en gras, en italique ...
  • Combinaison de classeurs et de feuilles de calcul; Fusionner les tables en fonction des colonnes clés; Fractionner les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF...
  • Plus que de puissantes fonctionnalités 300. 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 Essai gratuit du jour 30.
kte tab 201905

Office Tab apporte une interface à onglets à Office et simplifie grandement votre travail

  • Activer l'édition par onglets et la lecture 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 réduit le nombre de clics de souris pour vous chaque jour!
fond officetab
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Ignacia · 1 months ago
    Hey! Thanks for your macro.

    I was trying to use it for more than one pivot table in the same page, but it does not work. I wrote it like this:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xPTable1 As PivotTable
    Dim xPFile1 As PivotField
    Dim xStr1 As String
    On Error Resume Next
    If Intersect(Target, Range("D7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable1 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA1")
    Set xPFile1 = xPTable1.PivotFields("ETAPA1")
    xStr1 = Target.Text
    xPFile1.ClearAllFilters
    xPFile1.CurrentPage = xStr1
    Application.ScreenUpdating = True

    Dim xPTable2 As PivotTable
    Dim xPFile2 As PivotField
    Dim xStr2 As String
    On Error Resume Next
    If Intersect(Target, Range("G7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable2 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA2")
    Set xPFile2 = xPTable2.PivotFields("ETAPA2")
    xStr2 = Target.Text
    xPFile2.ClearAllFilters
    xPFile2.CurrentPage = xStr2
    Application.ScreenUpdating = True

    End Sub

    Maybe you can help me out!

    Thanks in advance!
  • To post as a guest, your comment is unpublished.
    Justin · 1 years ago
    How would you do this with a report filter that has a hierarchy?

  • To post as a guest, your comment is unpublished.
    Daniel · 1 years ago
    Using this code (updated for my variables of course), when changing the field, the filter changes momentarily to the correct one, and then clears itself almost immediately. Trying to figure out why it's doing this (wondering if it has something to do with the ClearAllFilters at the end of the sub?)