Graphique croisé selection filtre auto

Bonsoir à tous,

voila je rencontre une problématique, je souhaiterai qu'un Graphique croisé dynamique sélectionne automatiquement les filtres en fonction d'une plage de cellule, "cellules en jaune" dans mon fichier,

je suis pas sur de m'être trés bien exprimé mais je persuadé qu'a la vu du fichier vous comprendrez ma demande,

Merci par avance pour votre précieuse aide,

Guillaume

Bonsoir,

Voir exemple avec ajout colonne.

Cdlt.

Bonsoir,

Bonsoir Jean-Eric,

Dans le fichier joint, un clic droit sur le Graphique Croisé Dynamique, puis "Actualiser les données" te donne les filtres désirés.

Le code utilisé dans l'évènement de feuille :

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim Pvt As PivotItem
Dim ChO As ChartObject
Dim Plg As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each ChO In ActiveSheet.ChartObjects
    If Not ChO.Chart.PivotLayout Is Nothing Then
        If ChO.Chart.PivotLayout.PivotTable.Name = Target.Name Then
            Set Plg = Me.Range("$G$3:$G$6")
            Target.PivotFields("Semaine").ClearAllFilters
            For Each Pvt In ChO.Chart.PivotLayout.PivotTable.PivotFields("Semaine").PivotItems
                If IsNumeric(Pvt) Then
                    Pvt.Visible = IIf(IsError(Application.Match(Val(Pvt), Plg, 0)), False, True)
                Else
                    Pvt.Visible = False
                End If
            Next Pvt
        End If
    End If
Next ChO
Range("G2").Select
Application.EnableEvents = True
End Sub

Le fichier :

Bonne soirée

Re,

Bonsoir cousinhub,

VBA ou pas VBA

De plus, l'utilisation de 'EnableEvents' sans gestion d'erreur peut poser problème.

Cdlt.

Bonjour à tous les deux,

merci pour votre réponse aussi rapide,

le code marche bien cependant j'ai ommis quelques précisions,

j'ai deux graphiques sur la meme feuille avec des bases de données différentes mais je souhaite le meme filtre,

de plus j'affiche les semaine en axes et le filtre se fait sur les axes j'ai essayé de modifié le code mais que neni !!!

Merci encore pour votre aide,

Bonsoir,

Tout d'abord, j'ai tenu compte de la petite remarque de J-E, concernant l'utilisation "abusive" de l'instruction EnableEvents...

Je l'ai contourné en utilisant une variable booléenne, le résultat est le même, mais le risque de perdre l'exécution des codes "Événements" de la feuille en cas de plantage n'est plus avéré.

Ensuite, j'ai déplacé ton 2ème TCD, car lors de la mise à zéro des filtres, le TCD1 voulait empiéter sur le TCD3, ce qui provoquait un plantage.

Et enfin, je n'ai strictement rien compris à :

de plus j'affiche les semaine en axes et le filtre se fait sur les axes j'ai essayé de modifié le code mais que neni

Regarde le fichier joint.

Le code se lance à l'activation de l'onglet.

Tu peux ne mettre à jour qu'un seul GCD avec le clic droit, sinon, tu changes d'onglet, et tu reviens...(y'a plus simple comme solution, un bouton par exemple....)

Bon courage

Bonjour,

Bonjour cousinhub,

Une alternative à étudier dans le fichier joint, avec la procédure (principale) ci-dessous :

Public Sub Updated_PTs()
Dim ws As Worksheet, pt As PivotTable

    Set ws = ActiveWorkbook.Worksheets("TCDs")
    For Each pt In ws.PivotTables
        pt.ManualUpdate = True
        With pt.PivotFields("Semaine")
            .ClearAllFilters
            .PivotFilters.Add _
                    Type:=xlCaptionIsBetween, _
                    Value1:=[départ], _
                    Value2:=[fin]
        End With
        pt.ManualUpdate = False
    Next
    Set ws = Nothing

End Sub

Cdlt.

Bonjour et merci pour votre réponse,

effectivement c'est exactement ce que je souhaite mais lorseque je l'adapte a un autre fichier il bloque sur

.PivotFilters.Add _

Type:=xlCaptionIsBetween, _

Value1:=[départ], _

Value2:=[fin]

Pourtant j'ai bien nommé les cellules départ et fin dans ma feuille,

Le TCD ne prends aucune valeur et pourtant tout les filtres sont sélectionnés,

bizarre

ci joint le fichier,

13classeur1.xlsm (39.01 Ko)

Bonjour,

J'ai commencé par supprimer les 2 lignes de totaux inutiles dans les données source du TCD.

Comment veux effectuer un filtre numérique si tes données comportent du texte?

A te relire pour la suite, car je ne comprends pas la construction du fichier.

Cdlt.

Bonjour,

et merci pour votre aide,

cela fonctionne parfaitement !

Bonne journée

Rechercher des sujets similaires à "graphique croise selection filtre auto"