Bonjour
voila j essaye de réaliser un TCD avec une plage dynamique mais cela n est pas chose si simple en étant débutant je coince sur plusieurs points ;
je suis là pour apprendre et surtout comprendre :
dans mon code j ai une erreur voir 2 ou je bloque clairement , merci d avance pour votre aide,
Premier soucis :
*La définition de ma plage variable j ai un message d erreur et le résultat de mon code pour définir tabtcd = Nothing
*Pour la source data je ne sais pas si c est correct de mettre directement SourceData:="tabtcd"
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 Sub Bouton4_Cliquer() ' TCD Macro ' Réalisation du TCD à partir des données brutes Dim derlig As Long Dim tabtcd As Range derlig = Sheets("Feuil1").Range("C" & Rows.Count).End(xlUp).Row tabtcd = Sheets("Feuil1").Rows("C" & derlig) tabtcd.Select 'Probleme : la source du TCD est dynamique et il va créer une page à chaque fois et cette page ne sera pas tjs la n4 apres la 5 apres la 6 .... Sheets.Add ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "tabtcd", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:="Feuil2!R1C1", TableName:="Tableau croisé dynamique1", _ DefaultVersion:=xlPivotTableVersion14 Sheets("Feuil2").Select Cells(1, 1).Select 'D par ligne With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Currency") .Orientation = xlRowField .Position = 1 End With 'V par D ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _ PivotTables("Tableau croisé dynamique1").PivotFields("USD Equivalent"), _ "Nombre de USD Equivalent", xlCount With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Nombre de USD Equivalent") .Caption = "Somme de USD Equivalent" .Function = xlSum End With 'P par d ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _ PivotTables("Tableau croisé dynamique1").PivotFields("Revenue"), _ "Nombre de Revenue", xlCount With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _ "Nombre de Revenue") .Caption = "Somme de Revenue" .Function = xlSum End With End Sub
Partager