Bonjour a tous.

J'aimerai d'abord savoir s'il n'y a pas un tutoriel sur la programmation des TCDs car c vraiment un casse-tete chinois a mon niveau . en effet, meme les codes que je copie sur les forums bloquent pour je ne sais quelle raison chez moi (par exemple celui de la creation d'un TCd plus haut sur cette page).

Ceci etant dit, j'ai fini-gloire a Dieu !- par le creer et meme mettre a jour mon champ. Mon probleme, c que le programme decoche bien la date precedente et coche la suivante, mais le TCD affiche "Multiple items" alors qu'un seul champ est en realite coche. J'ai rafraichi mon TCD mais ça n'a rien changer; idem pour l'intruction Tcd.PivotCache.MissingItemsLimit = xlMissingItemsNone que j'ai trouvée sur cette FAQ. Quelqu'un sait -il comment faire? Merci d'avance pour votre aide.

ci dessous mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
Sub TCDtest3()
Dim p As PivotItem
Dim Tcd As PivotTable
Dim wb As Workbook
Dim ws(2) As Worksheet
Dim n As Integer
 
 
'neutralisation du rafraichissement d'écran
Application.ScreenUpdating = False
'affectation des variables
Set wb = ActiveWorkbook
Set ws(1) = Sheets("accessibility KPI at BH")
Set ws(2) = Sheets("retainability and qos kpi at BH")
 
wb.RefreshAll
ws(1).Activate
 
'boucle traitant tous les TCDs de la feuille
For Each Tcd In ws(1).PivotTables
    'boucle traitant tous les TCDs de la feuille
    'cocher toutes les dates
    Tcd.PivotFields("Date").CurrentPage = "(All)"
    'decocher la date precedente et cocher celle d'hier
    With Tcd.PivotFields("date")
        .PivotItems(Date - 2).Visible = False
        .PivotItems(Date - 1).Visible = True
    End With
    'essai pour actualiser les dates
    'Dim Pvt As PivotTable
    'Set Pvt = ActiveSheet.PivotTables("Mon TCD")
    'Tcd.PivotCache.MissingItemsLimit = xlMissingItemsNone
Next Tcd
 
ws(2).Activate
'boucle traitant tous les TCDs de la feuille
For Each Tcd In ws(2).PivotTables
    'boucle traitant tous les TCDs de la feuille
    'cocher toutes les dates
    Tcd.PivotFields("Date").CurrentPage = "(All)"
    'decocher la date precedente et cocher celle d'hier
    With Tcd.PivotFields("date")
        .PivotItems(Date - 2).Visible = False
        .PivotItems(Date - 1).Visible = True
    End With
Next Tcd
 
End Sub
NB: J'utilise EXCEL 2007 installé en anglais (USA)