modifier source données tableau croise dynamique avec evenement update

alexane

XLDnaute Occasionnel
Bonjour à tous
J'aimerais que lors de l'actualisation d'un tableau croisé dynamique, étendre automatiquement la source de mon tcd. J'ai bien tenté quelques instructions sur l'évenement pivot table uptade de la feuille où se situe mon tableau croise (tcd) mais ça bog. Qqn peut m'aider ? merci
 

Celeda

XLDnaute Barbatruc
Re : modifier source données tableau croise dynamique avec evenement update

Bonjour,

Voici un code de Pierrot93 qui permet de créer un TCD en se servant d'un nom qui lui, délimite le tableau en se servant de la formule décaler :


1- on nomme la base avec la formule décaler :
DECALER(Feuil1!$A$1;;;NBVAL(Feuil1!$A:$A);3) (3 représente le nombre de colonnes utilisées en supposant que le tableau démarre en A1) = plageTCD
C'est cette formule qui permet d'étendre la plage des données du tableau;on peut l'actualiser à chaque ajout d'intitulé de colonnes et être utilisée dans la création du tcd.
Le code ci-dessous est la cerise sur le gateau.

2- le code qui crée le TCD en se servant de ce nom :

Code:
Sub creationTCD()
Dim ws As Worksheet, pc As PivotCache, TCD As PivotTable
Application.ScreenUpdating = False
Set ws = Sheets("Feuil1")
With ws
    If .PivotTables.Count > 0 Then
        .PivotTables(1).TableRange2.Delete
    End If
    Set pc = ThisWorkbook.PivotCaches.Add(xlDatabase, "plageTCD")
End With
Set TCD = pc.CreatePivotTable(ws.Range("F3"))
With TCD
    .PivotFields("dates").Orientation = xlRowField
    .PivotFields("clients").Orientation = xlColumnField
    With .PivotFields("montants")
        .Orientation = xlDataField
        .Function = xlSum
    End With
End With
End Sub
Ce code est issu d'un besoin spécifique, il suffit d'adapter ensuite les noms des champs dont on a besoin.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 017
Messages
2 104 582
Membres
109 083
dernier inscrit
Stef06