OVH Cloud OVH Cloud

lier deux tableaux croisé dynamique

2 réponses
Avatar
Badisson
Deux TCD : même source de données,même disposition (champs ligne / colonne) ,
même champs pour les critère de selection.
mais avec 2 données différentes
(exp: le 1er affiche le nbr de client
le 2ème affiche le montant des ventes)

comment je peux actualiser automatiquement le 2ème TCD, quand je modifie un
critère de sélection sur le 1er pour appliquer ces même critère au 2ème.
(est il possible de lier ces 2 TCD)?
Merci d'avance pour vos réponces.

2 réponses

Avatar
Laurent Longre
Les modifications dans le TCD sont interceptés par la procédure
Worksheet_Calculate. Par VBA tu peux donc comparer les valeurs des deux champs
de page et changer celui du 2ème TCD s'ils sont différents.

Dans le module de code de la feuille contenant le 1er TCD :

Private Sub Worksheet_Calculate()

Dim Filtre1 As PivotField, Filtre2 As PivotField
Set Filtre1 = Me.PivotTables(1).PageFields("ChampX")
Set Filtre2 = Feuil2.PivotTables(1).PageFields("ChampX")
If Filtre2.DataRange <> Filtre1.DataRange Then _
Filtre2.DataRange.Value = Filtre1.DataRange.Value

End Sub

Remplace "Feuil2" par le nom du module VBA attaché à la feuille contenant le
deuxième TCD, et "ChampX" par le nom du champ de page concerné.

Si tu veux que la liaison se fasse dans les deux sens, fais pareil dans le
module de la deuxième feuille.

Bonne chance,

Laurent

Deux TCD : même source de données,même disposition (champs ligne / colonne) ,
même champs pour les critère de selection.
mais avec 2 données différentes
(exp: le 1er affiche le nbr de client
le 2ème affiche le montant des ventes)

comment je peux actualiser automatiquement le 2ème TCD, quand je modifie un
critère de sélection sur le 1er pour appliquer ces même critère au 2ème.
(est il possible de lier ces 2 TCD)?
Merci d'avance pour vos réponces.



Avatar
tofic
Laurent Longre a écrit le 29/03/2005 à 13h35 :
Les modifications dans le TCD sont interceptés par la procédure
Worksheet_Calculate. Par VBA tu peux donc comparer les valeurs des deux champs
de page et changer celui du 2ème TCD s'ils sont différents.

Dans le module de code de la feuille contenant le 1er TCD :

Private Sub Worksheet_Calculate()

Dim Filtre1 As PivotField, Filtre2 As PivotField
Set Filtre1 = Me.PivotTables(1).PageFields("ChampX")
Set Filtre2 = Feuil2.PivotTables(1).PageFields("ChampX")
If Filtre2.DataRange <> Filtre1.DataRange Then _
Filtre2.DataRange.Value = Filtre1.DataRange.Value

End Sub

Remplace "Feuil2" par le nom du module VBA attaché à la
feuille contenant le
deuxième TCD, et "ChampX" par le nom du champ de page
concerné.

Si tu veux que la liaison se fasse dans les deux sens, fais pareil dans le
module de la deuxième feuille.

Bonne chance,

Laurent

Deux TCD : même source de données,même disposition (champs
ligne / colonne) ,
même champs pour les critère de selection.
mais avec 2 données différentes
(exp: le 1er affiche le nbr de client
le 2ème affiche le montant des ventes)

comment je peux actualiser automatiquement le 2ème TCD, quand je
modifie un
critère de sélection sur le 1er pour appliquer ces même
critère au 2ème.
(est il possible de lier ces 2 TCD)?
Merci d'avance pour vos réponces.






Bonjour,

Mieux vaut tard que jamais...

Merci Laurent, j'étais à la recherche de cette solution depuis quelques jours sur le web. La tienne semble être la seule qui fonctionne!

Christophe,