Tableau croisé dynamique: comment filtrer les champs

Le
tomchacha
Bonjour,

Chuis nouveau sur le forum. J'y ai cherché une réponse à une question qui
m'agace depuis longtemps mais la réponse la plus proche n'est plus disponible
sur Cjoint (réponse d'Av à Steph en février 2006). Désolé donc si je repose
un peu la même question:

Avec un TCD, si je sélectionne une valeur d'un Champ A, Excel me propose,
pour les autres champs, toutes les valeurs possibles et pas seulement celles
qui correspondent au champ A?

Pourtant Excel sait très bien filtrer les champs avec la fonction Filtre
Auto. Comment faire avec un TCD?

Merci par avance aux bonnes âmes qui voudront bien m'ôter cette épine du pied.

tcc
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 #17672841
Et puis, si tu transforme ce champ en champ page,
si tu choisis un élément de ce champ par la suite,
tu obtiendras l'effet filtre (affichage) escompté ! Non ?


"tomchacha" news:
Bonjour,

Chuis nouveau sur le forum. J'y ai cherché une réponse à une question qui
m'agace depuis longtemps mais la réponse la plus proche n'est plus
disponible
sur Cjoint (réponse d'Av à Steph en février 2006). Désolé donc si je repose
un peu la même question:

Avec un TCD, si je sélectionne une valeur d'un Champ A, Excel me propose,
pour les autres champs, toutes les valeurs possibles et pas seulement celles
qui correspondent au champ A?

Pourtant Excel sait très bien filtrer les champs avec la fonction Filtre
Auto. Comment faire avec un TCD?

Merci par avance aux bonnes âmes qui voudront bien m'ôter cette épine du
pied.

tcc
tomchacha
Le #17761731
Merci pour la réponse.
Seulement, c'est justement ça le problème: si tu as deux champs de page en
haut de ton tableau croisé et que tu sélectionnes la valeur A du premier
champ, comment faire pour que le deuxième champ de page te propose:
non pas toutes les valeurs possibles
mais seulement les valeurs qui ont A pour premier champ.

exemple: j'ai une base de données avec toutes les régions, tous les
départements, et pour chaque département des informations.
Je crée un tableau croisé avec deux champs de page:
Champ A: région
Champ B: département

Quand je sélectionne la valeur PACA dans champ A le tableau affiche bien
toutes les valeurs de PACA, mais quand je veux ensuite affiner et choisir un
département particulier avec le champ B, la liste déroulante me repropose
tous les 95 départements de France et pas juste Bouches-du-Rhone, Var, etc!
C'est agaçant.

C'est d'autant plus agaçant qu'avec un filtre auto sur la base, Excel sait
très bien le faire.

Arrrgggghhh!

A l'aide.

tcc



"michdenis" a écrit :

Et puis, si tu transforme ce champ en champ page,
si tu choisis un élément de ce champ par la suite,
tu obtiendras l'effet filtre (affichage) escompté ! Non ?


"tomchacha" news:
Bonjour,

Chuis nouveau sur le forum. J'y ai cherché une réponse à une question qui
m'agace depuis longtemps mais la réponse la plus proche n'est plus
disponible
sur Cjoint (réponse d'Av à Steph en février 2006). Désolé donc si je repose
un peu la même question:

Avec un TCD, si je sélectionne une valeur d'un Champ A, Excel me propose,
pour les autres champs, toutes les valeurs possibles et pas seulement celles
qui correspondent au champ A?

Pourtant Excel sait très bien filtrer les champs avec la fonction Filtre
Auto. Comment faire avec un TCD?

Merci par avance aux bonnes âmes qui voudront bien m'ôter cette épine du
pied.

tcc





michdenis
Le #17765491
Un champ page n'est pas fait pour "filtrer" les entrées sur un autre champ
"Page".

Mais ce que tu peux faire, c'est de déplacer le champ "Page" dans ton
tableau TDC.
appliquer le filtre de ton autre champ Page et replacer ton champ page du
tableau
de ton tdc comme champ page.

Même par macro, il n'y a pas moyen, je crois de faire cela directement. il
faut
faire par macro les mêmes manipulations que tu ferais manuellement comme
dit plus haut ! à ce sujet, je te transmets un petit exemple que tu devras
adapter !

'================================================= si on désire effectuer un filtre sur un champ
page, on peut déplacer celui-ci dans un champ colonne,
effectuer le filtre (cocher le ou les items du champ) et le
replacer dans son champ page.

La procédure qui suit utilise la même parade pour
dresser la liste des items du champ "page" visible

If Pi.Visible = True And Pi.RecordCount > 0 Then
La ligne de code précédente de la procédure permet d'afficher
seulement les éléments de la liste visible qui ont des données dans
la section "Data" du pivotTable.

Il ne te reste plus qu'à adapter le nom des objets dans la procédure...
Est-ce que cela répond à ton besoin ?

'-----------------------------------------
Sub test()

Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Application.ScreenUpdating = False
With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
With Pf
.Orientation = xlColumnField
.Position = 1
For Each Pi In Pf.PivotItems
If Pi.Visible = True And Pi.RecordCount > 0 Then
A = A + 1
ReDim Preserve S(1 To A)
S(A) = Pi.Name
End If
Next
.Orientation = xlPageField
.Position = 1
End With
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'-----------------------------------------
'=================================================


"tomchacha" news:

Merci pour la réponse.
Seulement, c'est justement ça le problème: si tu as deux champs de page en
haut de ton tableau croisé et que tu sélectionnes la valeur A du premier
champ, comment faire pour que le deuxième champ de page te propose:
non pas toutes les valeurs possibles
mais seulement les valeurs qui ont A pour premier champ.

exemple: j'ai une base de données avec toutes les régions, tous les
départements, et pour chaque département des informations.
Je crée un tableau croisé avec deux champs de page:
Champ A: région
Champ B: département

Quand je sélectionne la valeur PACA dans champ A le tableau affiche bien
toutes les valeurs de PACA, mais quand je veux ensuite affiner et choisir un
département particulier avec le champ B, la liste déroulante me repropose
tous les 95 départements de France et pas juste Bouches-du-Rhone, Var, etc!
C'est agaçant.

C'est d'autant plus agaçant qu'avec un filtre auto sur la base, Excel sait
très bien le faire.

Arrrgggghhh!

A l'aide.

tcc



"michdenis" a écrit :

Et puis, si tu transforme ce champ en champ page,
si tu choisis un élément de ce champ par la suite,
tu obtiendras l'effet filtre (affichage) escompté ! Non ?


"tomchacha" de
news:
Bonjour,

Chuis nouveau sur le forum. J'y ai cherché une réponse à une question qui
m'agace depuis longtemps mais la réponse la plus proche n'est plus
disponible
sur Cjoint (réponse d'Av à Steph en février 2006). Désolé donc si je
repose
un peu la même question:

Avec un TCD, si je sélectionne une valeur d'un Champ A, Excel me propose,
pour les autres champs, toutes les valeurs possibles et pas seulement
celles
qui correspondent au champ A?

Pourtant Excel sait très bien filtrer les champs avec la fonction Filtre
Auto. Comment faire avec un TCD?

Merci par avance aux bonnes âmes qui voudront bien m'ôter cette épine du
pied.

tcc





tomchacha
Le #17878751
Merci michdenis pour la réponse. Malheureusement, ça ne répond pas au problème.

J'ai essayé: j'ai mis le champ A en colonne, j'ai coché une seule région
(PACA) et décoché les autres, et je l'ai remis en champ page.

Je ne peux plus alors sélectionner que la région PACA dans le menu
déroulant, c'est normal; mais mon champ B, lui, continue à afficher toute la
liste de tous les départements de France. Argghghh....

Avec ce petit exemple, ce n'est pas grave, mais j'utilise des bases qui ont
des milliers de références, et là c'est mission impossible de ne pas pouvoir
filtrer les références au niveau des champs.

:(.......



"michdenis" a écrit :

Un champ page n'est pas fait pour "filtrer" les entrées sur un autre champ
"Page".

Mais ce que tu peux faire, c'est de déplacer le champ "Page" dans ton
tableau TDC.
appliquer le filtre de ton autre champ Page et replacer ton champ page du
tableau
de ton tdc comme champ page.

Même par macro, il n'y a pas moyen, je crois de faire cela directement. il
faut
faire par macro les mêmes manipulations que tu ferais manuellement comme
dit plus haut ! à ce sujet, je te transmets un petit exemple que tu devras
adapter !

'================================================= > si on désire effectuer un filtre sur un champ
page, on peut déplacer celui-ci dans un champ colonne,
effectuer le filtre (cocher le ou les items du champ) et le
replacer dans son champ page.

La procédure qui suit utilise la même parade pour
dresser la liste des items du champ "page" visible

If Pi.Visible = True And Pi.RecordCount > 0 Then
La ligne de code précédente de la procédure permet d'afficher
seulement les éléments de la liste visible qui ont des données dans
la section "Data" du pivotTable.

Il ne te reste plus qu'à adapter le nom des objets dans la procédure...
Est-ce que cela répond à ton besoin ?

'-----------------------------------------
Sub test()

Dim S(), A As Long
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Application.ScreenUpdating = False
With Worksheets("NomDeLaFeuilleOùEstTonTDC")
Set Pt = .PivotTables(1)
Set Pf = Pt.PivotFields("NomChampPage")
With Pf
.Orientation = xlColumnField
.Position = 1
For Each Pi In Pf.PivotItems
If Pi.Visible = True And Pi.RecordCount > 0 Then
A = A + 1
ReDim Preserve S(1 To A)
S(A) = Pi.Name
End If
Next
.Orientation = xlPageField
.Position = 1
End With
.Range("A25").Resize(UBound(S)).Value = _
Application.Transpose(S)
End With

End Sub
'-----------------------------------------
'================================================= >


"tomchacha" news:

Merci pour la réponse.
Seulement, c'est justement ça le problème: si tu as deux champs de page en
haut de ton tableau croisé et que tu sélectionnes la valeur A du premier
champ, comment faire pour que le deuxième champ de page te propose:
non pas toutes les valeurs possibles
mais seulement les valeurs qui ont A pour premier champ.

exemple: j'ai une base de données avec toutes les régions, tous les
départements, et pour chaque département des informations.
Je crée un tableau croisé avec deux champs de page:
Champ A: région
Champ B: département

Quand je sélectionne la valeur PACA dans champ A le tableau affiche bien
toutes les valeurs de PACA, mais quand je veux ensuite affiner et choisir un
département particulier avec le champ B, la liste déroulante me repropose
tous les 95 départements de France et pas juste Bouches-du-Rhone, Var, etc!
C'est agaçant.

C'est d'autant plus agaçant qu'avec un filtre auto sur la base, Excel sait
très bien le faire.

Arrrgggghhh!

A l'aide.

tcc



"michdenis" a écrit :

> Et puis, si tu transforme ce champ en champ page,
> si tu choisis un élément de ce champ par la suite,
> tu obtiendras l'effet filtre (affichage) escompté ! Non ?
>
>
> "tomchacha" > de
> news:
> Bonjour,
>
> Chuis nouveau sur le forum. J'y ai cherché une réponse à une question qui
> m'agace depuis longtemps mais la réponse la plus proche n'est plus
> disponible
> sur Cjoint (réponse d'Av à Steph en février 2006). Désolé donc si je
> repose
> un peu la même question:
>
> Avec un TCD, si je sélectionne une valeur d'un Champ A, Excel me propose,
> pour les autres champs, toutes les valeurs possibles et pas seulement
> celles
> qui correspondent au champ A?
>
> Pourtant Excel sait très bien filtrer les champs avec la fonction Filtre
> Auto. Comment faire avec un TCD?
>
> Merci par avance aux bonnes âmes qui voudront bien m'ôter cette épine du
> pied.
>
> tcc
>
>
>




Publicité
Poster une réponse
Anonyme