TCD / Filtres de rapport en cascade

Le
MultiSeb
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20228851
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"

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
michdenis
Le #20234221
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"
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"

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
MultiSeb
Le #20243481
Bonjour,

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

Merci



On 25 sep, 16:26, "michdenis"
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"

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


michdenis
Le #20243891
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"

Bonjour,

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

Merci



On 25 sep, 16:26, "michdenis"
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"

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


Publicité
Poster une réponse
Anonyme