Je souhaite importer des données d'un tableau croisé dynamique vers un autre document excel.

J'utilise ce code (qui marche lorsque les données ne sont pas issues d'un TCD) :

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Sub Importer()
 
    Dim Chemin As String, Fichier As String, Fichier2 As String
 
    '
    Dim wkb As Workbook
    Dim shFrom As Worksheet
    Dim shTo As Worksheet
    Dim varTab As Variant
    '
    '
    Chemin = ThisWorkbook.Path & Application.PathSeparator
    Fichier = Dir("C:\Users\fetcheberry\Desktop\Répartition actifs.xlsx")
 
    ' pointeurs
    Set wkb = Workbooks.Open(Chemin & Fichier)
    Set shFrom = wkb.Worksheets("TCD Actifs")
    Set shTo = ThisWorkbook.Worksheets("Répartition")
 
    Application.ScreenUpdating = False
 
'    With Workbooks.Open(Chemin & Fichier)
'    Range("A2").Select
'    Range(Selection, Selection.End(xlDown)).Select
'    Range(Selection, Selection.End(xlToRight)).Select
'    Selection.Copy
'    ThisWorkbook.ActiveSheet.Range("K1").PasteSpecial Paste:=xlPasteValues
'    .Close savechanges:=False
'    End With
 
    varTab = shFrom.Range(shFrom.Range("A2"), shFrom.Range("A2").End(xlDown))
    shTo.Range("A1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("B2"), shFrom.Range("B2").End(xlDown))
    shTo.Range("B1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("C2"), shFrom.Range("C2").End(xlDown))
    shTo.Range("C1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
varTab = shFrom.Range(shFrom.Range("D2"), shFrom.Range("D2").End(xlDown))
    shTo.Range("D1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
   varTab = shFrom.Range(shFrom.Range("E2"), shFrom.Range("E2").End(xlDown))
    shTo.Range("E1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("F2"), shFrom.Range("F2").End(xlDown))
    shTo.Range("F1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("G2"), shFrom.Range("G2").End(xlDown))
    shTo.Range("G1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("H2"), shFrom.Range("H2").End(xlDown))
    shTo.Range("H1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("I2"), shFrom.Range("I2").End(xlDown))
    shTo.Range("I1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("J2"), shFrom.Range("J2").End(xlDown))
    shTo.Range("J1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("K2"), shFrom.Range("K2").End(xlDown))
    shTo.Range("K1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("L2"), shFrom.Range("L2").End(xlDown))
    shTo.Range("L1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("M2"), shFrom.Range("M2").End(xlDown))
    shTo.Range("M1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("N2"), shFrom.Range("N2").End(xlDown))
    shTo.Range("N1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
   varTab = shFrom.Range(shFrom.Range("O2"), shFrom.Range("O2").End(xlDown))
    shTo.Range("O1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
   varTab = shFrom.Range(shFrom.Range("P2"), shFrom.Range("P2").End(xlDown))
    shTo.Range("P1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("Q2"), shFrom.Range("Q2").End(xlDown))
    shTo.Range("Q1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("R2"), shFrom.Range("R2").End(xlDown))
    shTo.Range("R1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
    varTab = shFrom.Range(shFrom.Range("S2"), shFrom.Range("S2").End(xlDown))
    shTo.Range("S1").Resize(UBound(varTab), UBound(varTab, 2)) = varTab
 
 
 
 
End Sub
Cependant, même s'il n'y a pas de message d'erreur qui apparaît lors de l'exécution du code ci-dessus, je ne parviens pas à ramener ces données issues du TCD. Quel code devrais-je utiliser selon vous ?