Actualiser un TCD Spécifique

Bonjour à tous,

J'ai donc une même source de données, un tableau sur un onglet. De plus, j'ai 2 TCD relié à cette source de données.

J'actualise par le VBA soit le TCD n°1 soit le TCD n°2.

Je pensais donc que la commande "PivotTable.RefreshTable" permettait d'actualiser uniquement le TCD en question. Contrairement à "PivotTable.PivotCache.Refresh" qui actualise l'ensemble des objets ayant comme source la source en question.

Sauf que lorsque j'actualise le n°1, il cherche à actualiser le n°2. Ce qui pose problème dans mon cas.

Comment faire dans ce cas ? Les 2 commandes ci-dessus ne fonctionnent pas.

Bonjour,
Tu as une source unique pour tes 2 TCDs.
Les 2 commandes sont identiques et actualiseront l'ensemble des TCDs.
Cdlt.

Merci de ta réponse rapide.

Il est donc impossible de mettre à jour uniquement 1 des 2 TCD avec la même source unique avec une autre commande ?

Pourquoi il est obligatoire de mettre à jour l'ensemble des TCD possédant la même source de données ?

Re,
Je ne pense pas, mais tu as peut-être d'autres options avec ta version Excel (dont Power Query).
Cdlt.

Après mes recherches il faudrait changer le PivotCache liée au 2 TCD afin que cela soit pour chacun un PivotCache spécifique même si les 2 PivotCache pointeraient vers la même source de données au final.

Il faudrait donc utiliser un ActiveWorkbook.PivotCaches.Create ... (je ne connais pas les variables)

Et puis Changer je ne sais comment le PivotCache lié au TCD

https://contextures.com/xlpivot11.html

Si quelqu'un arrive à m'expliquer comment faire pour créer 2 pivotsCaches avec la même source de données et comment changer celle d'un PivotTable en question je suis preneur. Mes tests n'aboutissent pas. Je ne veux pas 2 tables, mais bien 2 pivotCaches pour une même table, 2 PivotTable (1 pour chaque pivotCache).

Merci d'avance.

Re,
Tu as effectivement cette solution mais ily a un mais, la taille de ton fichier va augmenter sérieusement.
Et puis tu as toujours l'option Power Query avec des résultats sous forme de tableaux structurés.
Regarde le paragraphe :

Create New Cache for Selected Pivot Table

Ton navigateur traduira sans difficulté en français et les explications relativement simples.
Cdlt.

Je ne peux utiliser Powerquery dans mon cas sans avoir des temps d'actualisation proche de 3 minutes qui désagréable à l'utilisation. Donc je ne préfère pas.

Lorsque j'effectuais mon changement de PivotCache cela ne l'effectuait pas. J'ai finalement réussi à le faire avec le code suivant :

Sub SelPTNewCache()
    Dim wsTemp As Worksheet
    Dim pt As PivotTable

    'On Error Resume Next
    Set pt = ActiveCell.PivotTable

    If pt Is Nothing Then
        MsgBox "Active cell is not in a pivot table"
    Else
        Set wsTemp = Worksheets.Add

        ActiveWorkbook.PivotCaches.Create( _
            SourceType:=xlDatabase, _
            SourceData:=pt.SourceData).CreatePivotTable _
            TableDestination:=wsTemp.Range("A3"), _
            TableName:="PivotTableTemp"

        pt.CacheIndex = wsTemp.PivotTables(1).CacheIndex

        Application.DisplayAlerts = False
        wsTemp.Delete
        Application.DisplayAlerts = True
    End If

exitHandler:
        Set pt = Nothing

End Sub

Et finalement, Lorsque j'effectue la commande RefreshTable, cela n'actualise bien qu'un des TCD.

Merci à toi Jean-Eric !

Bonjour,
Merci de ce retour !
Cdlt.

Rechercher des sujets similaires à "actualiser tcd specifique"