Bonjours à tous,

je cherche à faire un tableau croisé dynamique ou quelque chose s'en approchant à partir d'une matrice.

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
Sub test()
 
Dim PreLiTDC1 As Long, DerLiTDC1 As Long, DerColTDC1 As Long, i As Long
Dim Donnees()
Dim Pvt1 As PivotTable
 
    Set Pvt1 = ActiveSheet.PivotTables("Tableau croisé dynamique1")
 
    PreLiTDC1 = Cells.Find("TOTAL LOTS").Row  'trouve la première ligne du TDC1
    DerColTDC1 = Pvt1.TableRange1.Columns.Count + 1 'trouve la Dernière colonne du TDC1
    DerLiTDC1 = Cells(PreLiTDC1 + 1, DerColTDC1 + 1).End(xlDown).Row 'trouve la dernière ligne du TDC1
 
    ReDim Donnees(DerLiTDC1 - PreLiTDC1, DerColTDC1 - 2) 'dimentionne la matrice qui récupèrera les données
 
    Donnees = Range("B4", Cells(DerLiTDC1, DerColTDC1))
 
    i = 1
    While Donnees(i, 1) <> "Total par année"
        If Donnees(i, 1) = "" Then Donnees(i, 1) = Donnees(i - 1, 1)
        i = i + 1
    Wend  
 
End Sub
Donnees est ma matrice.
Elle est alimenté avec un Tableau croisé dynamique.

En faite je souhaite faire un tableau croisé dynamique du tableau croisé dynamique.

j'ai essayé comme ça en passant par les listes mais je n'arrive pas à alimenter ma liste.

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
Sub test()
 
Dim PreLiTDC1 As Long, DerLiTDC1 As Long, DerColTDC1 As Long, i As Long
Dim Donnees(), Synthese()
Dim Pvt1 As PivotTable
Dim nombredelot As Byte
Dim lot As String
 
    Set Pvt1 = ActiveSheet.PivotTables("Tableau croisé dynamique1")
 
    PreLiTDC1 = Cells.Find("TOTAL LOTS").Row  'trouve la première ligne du TDC1
    DerColTDC1 = Pvt1.TableRange1.Columns.Count + 1 'trouve la Dernière colonne du TDC1
    DerLiTDC1 = Cells(PreLiTDC1 + 1, DerColTDC1 + 1).End(xlDown).Row 'trouve la dernière ligne du TDC1
 
    ReDim Donnees(DerLiTDC1 - PreLiTDC1, DerColTDC1 - 2) 'dimentionne la matrice qui récupèrera les données
 
    Donnees = Range("B122    ", Cells(DerLiTDC1, DerColTDC1))
 
    i = 1
    While Donnees(i, 1) <> "Total par année"
        If Donnees(i, 1) = "" Then Donnees(i, 1) = Donnees(i - 1, 1)
        i = i + 1
    Wend
 
    Names("TDC graph inter").RefersToR1C1 = Donnees
 
 
End Sub
A priori c'est normal que ça ne marche pas vu que Names dois faire référence à des cellules.

Du coup j'ai essayé comme ça mais ça ne marche pas non plus.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
    Sheets("TDCPPA").PivotTables("TDC graph inter").SourceData = Donnees
 
    Sheets("TDCPPA").PivotTables("TDC graph inter").PivotCache.Refresh
Quelqu'un pourrai m'aiguiller sur une solution possible?

Merci d'avance