Mise à jour de filtres de TCD (multi-sélection valeurs "contenant" txt)

9test-macro.xlsx (21.80 Ko)

Bonjour à tous et merci d'avance pour votre aide !

Je suis en train de construire un reporting financier sous Excel (basé sur une vieille base de données) et j'aimerai automatiser le filtre de mes TCD.

J'ai mis un fichier factice en pièce jointe.

En synthèse :

- j'ai un onglet de Données, dans lequel j'ai toutes les infos et dans lequel je souhaite saisir à la main, dans la cellule A1, uniquement le nom de famille de mes clients (même nom pour Monsieur et Madame par exemple).

(je sais que les données n'auraient pas dues être structurées ainsi, mais bon...)

- j'ai ensuite deux onglets avec un TCD chacun et ce sont ces 2 TCD que j'aimerai filtrer automatique sur le nom de famille que j'aurai saisi en Données!A1.

Le problème, c'est que je ne veux pas filtrer en disant " égal Données!A1" mais en disant "contient Données!A1".

Je veux que le filtre engloble les lignes de Monsieur et les lignes de Madame.

Pouvez-vous me dire si cela et faisable et comment procéder ?

Merci,

Julie.

Bonsoir,

Une proposition avec un filtre avancé.

Cordialement.

16test-macro.xlsm (37.80 Ko)

Bonjour,

Une proposition avec une procédure évènementielle.

A te relire.

Cdlt.

11test-macro.xlsm (24.06 Ko)
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim strCriteria As String
    If TypeName(Sh) = "Worksheet" And Sh.PivotTables.Count > 0 Then
        strCriteria = Worksheets("Données").Cells(1).Value
        With Sh.PivotTables(1)
            .ClearAllFilters
            .PivotFields("Contrats").PivotFilters.Add Type:=xlCaptionDoesNotBeginWith, Value1:="Total"
            .PivotFields("Client").PivotFilters.Add Type:=xlCaptionContains, Value1:=strCriteria
        End With
    End If
End Sub

Merci Zebulon2 et merci Jean-Eric.

Je viens de faire quelques tests.

La solution de Zebulon2 répond parfaitement au besoin fonctionnel.

Cela étant, j'avoue préférer l'ergonomie de la solution de Jean-Eric : le fait de ne pas avoir de bouton me parait plus simple.

Par contre, je ne suis pas arrivée à transposer la solution dans mon fichier d'origine.

L'erreur porte sur la ligne :

.PivotFields("Contrats").PivotFilters.Add Type:=xlCaptionDoesNotBeginWith, Value1:="Total"

Et le message est : 5 argument ou appel de procédure incorrect.

J'ai reporté le code dans le workbook complet.

@Jean-Eric, pouvez-vous me dire comment je peux corriger cette erreur et si je peux adapter le filtre pour mettre deux valeurs : contient "TOTAL" et "CONTRAT" (sans aucune autre valeur) ?

Merci encore !

Bonjour,

Je ne comprends pas tout. Il manque certainement des informations.

@Jean-Eric, pouvez-vous me dire comment je peux corriger cette erreur et si je peux adapter le filtre pour mettre deux valeurs : contient "TOTAL" et "CONTRAT" (sans aucune autre valeur) ?

Envoie un fichier représentatif de tes vraies données. Et reformule le besoin.

Cdlt.

La différence entre nos deux fichiers vient du fait que mon champ client est dans la zone "filtre" du TCD et pas dans la zone "lignes".

Je n'ai pas encore trouvé comment le faire sous mac, mais je vais essayé de "décompacter" le TCD.

Je ne vois pas d'autre différence en fait.

Alors, après multiples tests et vérifications, je pense que mon fichier de test de départ était trop simpliste.

Je l'ai donc modifié pour prendre en compte les filtres spécifiques que je recherche à voire appliquer dans mes TCD, qui sont différents dans les deux onglets (la mise à jour du classeur entier n'est donc pas pertinente).

J'ai donc mis à jour chaque onglet de résultat pour afficher (en valeurs) l'affichage attendu du TCD.

J'espère que ça simplifiera la compréhension de ma demande.

12test-macro.xlsx (18.13 Ko)

Encore merci !

Rechercher des sujets similaires à "mise jour filtres tcd multi selection valeurs contenant txt"