Bonjour à tous,

Je travaille sur un fichier qui doit se mettre à jour lors de la mise à jour d'un TCD.
Dans l'évèment Worksheet_PivotTableUpdate j'ai rédigé le code suivant (version allégée) :

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
 
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Dim lpi As PivotItem
    Dim ws As Worksheet
    Dim i As Integer
    Dim j As Integer
    Dim champ(1 To 8) As String
 
    champ(1) = "Et"
    champ(2) = "Operation Accountable"
    champ(3) = "Operation Name"
    champ(4) = "Orderer"
    champ(5) = "Supplier Name"
    champ(6) = "Task Name"
    champ(7) = "start"
    champ(8) = "end"
 
    Set ws = Worksheets("FiltreTCD")
 
    For j = 1 To 8
        i = 1
        For Each lpi In Target.PivotFields(champ(j)).PivotItems
            If lpi.Visible Then
                ws.Cells(i, j) = lpi.Name
                i = i + 1
            End If
        Next lpi
    Next j
End Sub
Pour résumé, cette macro va, pour chacun des 8 champs filtres de mon TCD, parcourir l'ensemble des éléments, va vérifier s'ils sont filtrer (via la propriété Visible) et les écrire dans une autre feuille si c'est le cas.

Tout fonctionne bien pour les 6 premiers champ mais cela ne tourne pas pour les deux derniers (qui sont des dates contrairement aux autres).
En effet, lors de la lecture de la propriété Visible de lpi (ligne 23), Excel retourne l'erreur 13 : Incompatibilité de type.
J'ai essayé de mettre un espion sur lpi et là visible est bien à True ou False mais si j'espionne directement lpi.Visible je retrouve l'erreur.

Le problème vient sans aucun doute du fait que ces champs sont des dates mais j'ai aucune idée du fond du problème et de comment le résoudre...

Merci d'avance