Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

TCD / Filtres de rapport en cascade

4 réponses
Avatar
MultiSeb
Bonjour,

J'ai un tableau crois=E9 dynamique comportant plusieurs filtres du
rapport. Je souhaite que les valeurs affich=E9es dans le deuxi=E8me et le
troisi=E8me filtre soient elles-m=EAmes filtr=E9es en fonction de ce qui a
=E9t=E9 choisi dans le filtre pr=E9c=E9dent. Je ne trouve pas d'option pour
obtenir cette d=E9pendance. Comment faire ?

Exemple : si mon premier filtre porte sur les continents et que je
choisis Europe, je veux que le deuxi=E8me filtre, portant sur les pays,
n'affiche que les pays europ=E9ens ; et si j'ai choisi l'Allemagne dans
le deuxi=E8me filtre, je veux que le troisi=E8me filtre propose uniquement
les villes allemandes.

Comme un bon visuel vaut mieux que de longs discours, j'ai mis un
extrait de fichier ici : http://cjoint.com/?jzulEB26ed

J'utilise Excel 2007, mais le fichier est enregistr=E9 au format 2003.


Merci

4 réponses

Avatar
michdenis
Bonjour MultiSeb,

As-tu essayé d'utiliser le champ "Page" du TDC

Exemple :
Champ page TDC1 = Continents -> Europe
Champ page TDC2 = Pays -> Allemagne
Champ page TDC3 = Ville -> Berlin

Tu choisis comme source de ton TDC2, ton TDC1 et
comme source de ton TDC3, ton TDC2

Ce n'est qu'une idée, je n'ai pas testé !
Thanks God, it's friday night !
;-))



"MultiSeb" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un tableau croisé dynamique comportant plusieurs filtres du
rapport. Je souhaite que les valeurs affichées dans le deuxième et le
troisième filtre soient elles-mêmes filtrées en fonction de ce qui a
été choisi dans le filtre précédent. Je ne trouve pas d'option pour
obtenir cette dépendance. Comment faire ?

Exemple : si mon premier filtre porte sur les continents et que je
choisis Europe, je veux que le deuxième filtre, portant sur les pays,
n'affiche que les pays européens ; et si j'ai choisi l'Allemagne dans
le deuxième filtre, je veux que le troisième filtre propose uniquement
les villes allemandes.

Comme un bon visuel vaut mieux que de longs discours, j'ai mis un
extrait de fichier ici : http://cjoint.com/?jzulEB26ed

J'utilise Excel 2007, mais le fichier est enregistré au format 2003.


Merci
Avatar
michdenis
Si la chose t'intéresse, j'ai fait un petit exemple.
Il est fait avec Excel 2007, en conséquence, il n'est pas
fonctionnel avec une version antérieure d'Excel.

Le hic, c'est qu'il fait 16.5 Mo. Il utilise une base de données
de plus de 68,000 lignes.



"michdenis" a écrit dans le message de groupe de discussion :

Bonjour MultiSeb,

As-tu essayé d'utiliser le champ "Page" du TDC

Exemple :
Champ page TDC1 = Continents -> Europe
Champ page TDC2 = Pays -> Allemagne
Champ page TDC3 = Ville -> Berlin

Tu choisis comme source de ton TDC2, ton TDC1 et
comme source de ton TDC3, ton TDC2

Ce n'est qu'une idée, je n'ai pas testé !
Thanks God, it's friday night !
;-))



"MultiSeb" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un tableau croisé dynamique comportant plusieurs filtres du
rapport. Je souhaite que les valeurs affichées dans le deuxième et le
troisième filtre soient elles-mêmes filtrées en fonction de ce qui a
été choisi dans le filtre précédent. Je ne trouve pas d'option pour
obtenir cette dépendance. Comment faire ?

Exemple : si mon premier filtre porte sur les continents et que je
choisis Europe, je veux que le deuxième filtre, portant sur les pays,
n'affiche que les pays européens ; et si j'ai choisi l'Allemagne dans
le deuxième filtre, je veux que le troisième filtre propose uniquement
les villes allemandes.

Comme un bon visuel vaut mieux que de longs discours, j'ai mis un
extrait de fichier ici : http://cjoint.com/?jzulEB26ed

J'utilise Excel 2007, mais le fichier est enregistré au format 2003.


Merci
Avatar
MultiSeb
Bonjour,

Je ne connaissais pas cette possibilité.
Je vais essayer et vous dire quoi.

Merci



On 25 sep, 16:26, "michdenis" wrote:
BonjourMultiSeb,

As-tu essayé d'utiliser le champ "Page" du TDC

Exemple :
Champ page TDC1 = Continents ->  Europe
Champ page TDC2 = Pays -> Allemagne
Champ page TDC3 = Ville -> Berlin

Tu choisis comme source de ton TDC2, ton TDC1 et
comme source de ton TDC3, ton TDC2

Ce n'est qu'une idée, je n'ai pas testé !
Thanks God, it's friday night !
;-))

"MultiSeb" a écrit dans le message de groupe de di scussion :


Bonjour,

J'ai un tableau croisé dynamique comportant plusieurs filtres du
rapport. Je souhaite que les valeurs affichées dans le deuxième et le
troisième filtre soient elles-mêmes filtrées en fonction de ce qui a
été choisi dans le filtre précédent. Je ne trouve pas d'option po ur
obtenir cette dépendance. Comment faire ?

Exemple : si mon premier filtre porte sur les continents et que je
choisis Europe, je veux que le deuxième filtre, portant sur les pays,
n'affiche que les pays européens ; et si j'ai choisi l'Allemagne dans
le deuxième filtre, je veux que le troisième filtre propose uniquemen t
les villes allemandes.

Comme un bon visuel vaut mieux que de longs discours, j'ai mis un
extrait de fichier ici :http://cjoint.com/?jzulEB26ed

J'utilise Excel 2007, mais le fichier est enregistré au format 2003.

Merci


Avatar
michdenis
Avec 2007, fais seulement un copier-coller
de ton premier TDC pour en créer un deuxième ou troisième,
et tu en modifies l'affichage.

En supposant que tu as 3 TDC sur la même feuille,
Tu vas avoir besoin d'un peu de code :

Pour te donner une idée... une partie du code dans le code
module où est le TDC

J'ai créé un exemple à partir d'une énorme base de donnée.
le fichier fait 16.5 mo compressé... difficile de penser de
publier cela !

'----------------------------------------------
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim X As String, A As String
Application.ScreenUpdating = False
Application.EnableEvents = False
Select Case Target.Name
Case Is = "LesRegions" 'Nom du Premier TDC
X = Me.PivotTables(Target.Name).PageFields("Region").CurrentPage
If X Like "(All)" Then X = "*"
'Procédure dans le module1
Filtre 1, X, "Market", "LeMarcher"
A = Worksheets("Market").Range("B2").Value
If X = "*" Then A = "(All)"
Me.PivotTables("LeMarcher").PivotCache.Refresh
Me.PivotTables("LeMarcher").PageFields("Market").CurrentPage = A
Me.PivotTables("LeMarcher").Update
'pour le TDC LesVilles
X = A
If X Like "(All)" Then X = "*"
'Procédure dans le module1
Filtre 2, X, "Ville", "LesVilles"
Me.PivotTables("LesVilles").PivotCache.Refresh
A = Worksheets("Ville").Range("C2").Value
Me.PivotTables("LesVilles").PageFields("City").CurrentPage = A
Me.PivotTables("LesVilles").Update

Case Is = "LeMarcher" 'Nom du deuxième TDC
X = Me.PivotTables(Target.Name).PageFields("Market").CurrentPage
If X Like "(All)" Then X = "*"
'Procédure dans le module1
Filtre 2, X, "Ville", "LesVilles"
Me.PivotTables("LesVilles").PivotCache.Refresh
A = Worksheets("Market").Range("C2").Value
Me.PivotTables("LesVilles").Update
End Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'----------------------------------------------

La procédure du filtre :

'------------------------------------------------------
Sub Filtre(Champ As Integer, Crit As String, Dest As String, PlageNommée)

With Feuil4 'Worksheets("DataSet")
With .Range("A1").CurrentRegion
.AutoFilter Field:=Champ, Criteria1:=Crit
Worksheets(Dest).Range("A1").CurrentRegion.Clear
.SpecialCells(xlCellTypeVisible).Copy Worksheets(Dest).Range("A1")
Worksheets(Dest).Range("A1").CurrentRegion.Name = PlageNommée
.AutoFilter
sxsx = .Item(2, Champ).Address
With Worksheets(Dest).Range("A1").CurrentRegion
.Sort key1:=.Item(2, Champ + 1), order1:=xlAscending, Header:=xlYes
End With
End With
End With
End Sub
'------------------------------------------------------

"MultiSeb" a écrit dans le message de groupe de discussion :


Bonjour,

Je ne connaissais pas cette possibilité.
Je vais essayer et vous dire quoi.

Merci



On 25 sep, 16:26, "michdenis" wrote:
BonjourMultiSeb,

As-tu essayé d'utiliser le champ "Page" du TDC

Exemple :
Champ page TDC1 = Continents -> Europe
Champ page TDC2 = Pays -> Allemagne
Champ page TDC3 = Ville -> Berlin

Tu choisis comme source de ton TDC2, ton TDC1 et
comme source de ton TDC3, ton TDC2

Ce n'est qu'une idée, je n'ai pas testé !
Thanks God, it's friday night !
;-))

"MultiSeb" a écrit dans le message de groupe de discussion :


Bonjour,

J'ai un tableau croisé dynamique comportant plusieurs filtres du
rapport. Je souhaite que les valeurs affichées dans le deuxième et le
troisième filtre soient elles-mêmes filtrées en fonction de ce qui a
été choisi dans le filtre précédent. Je ne trouve pas d'option pour
obtenir cette dépendance. Comment faire ?

Exemple : si mon premier filtre porte sur les continents et que je
choisis Europe, je veux que le deuxième filtre, portant sur les pays,
n'affiche que les pays européens ; et si j'ai choisi l'Allemagne dans
le deuxième filtre, je veux que le troisième filtre propose uniquement
les villes allemandes.

Comme un bon visuel vaut mieux que de longs discours, j'ai mis un
extrait de fichier ici :http://cjoint.com/?jzulEB26ed

J'utilise Excel 2007, mais le fichier est enregistré au format 2003.

Merci