Lier Trois Tableaux Croisé Dynamique

olistaps Messages postés 3 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 - 22 sept. 2008 à 23:19
olistaps Messages postés 3 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 - 23 sept. 2008 à 11:41
Bonjour à tous,

Sur une feuille excel, j'ai mis trois tableaux croisé dynamique avec la même source de données et j'aimerai les lier c'est à dire que lorsque je change une cellule de tri cela se change dans les autres tableaux. Et la je sèche... macro excel sos

J'ai trouvé cette macro sur le net et je n'ai pas réussi à l'adapter à ma feuille excel

La cellule ou la valeur change est C5 (valeur texte)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim page
Application.ScreenUpdating = False
If Target.Column = 2 Then
page = Sheets("DR").[C5]
    Sheets("DR").PivotTables("Liste").PivotFields("ZONE"). _
        CurrentPage = page
    Sheets("DR").PivotTables("Zone").PivotFields("ZONE"). _
        CurrentPage = page
End If
Application.ScreenUpdating = True
End Sub

Merci d'avance de votre aide
Olivier

2 réponses

olistaps Messages postés 3 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008
23 sept. 2008 à 11:16
Bonjour à tous,

J'ai réussi à lier les trois tableaux avec ce code mais impossible de revenir à la valeur Tous dans les tableaux. Il n'accepte pas ce champ (pas de blocage)

Quelqu'un à une idée ?
Merci beaucoup
Olivier

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim PI As PivotItem
With ActiveSheet.PivotTables("Mag").PageFields("ZONE")
For Each PI In .PivotItems
If PI.Value = Range("C6") Then
.DataRange = Range("C6")
Exit For
End If
Next PI
End With
With ActiveSheet.PivotTables("Liste").PageFields("ZONE")
For Each PI In .PivotItems
If PI.Value = Range("C6") Then
.DataRange = Range("C6")
Exit For
End If
Next PI
End With
0
olistaps Messages postés 3 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008
23 sept. 2008 à 11:41
J'ai essayé cela If PI.Value Range("C6") And Range("C6") "(Tous)" Then
.DataRange = "(Tous)"
Cela ne fonctionne pas
Bonne journée
0
Rejoignez-nous