OVH Cloud OVH Cloud

Table croisée

1 réponse
Avatar
Yann
Bonjour,
En ce moment je n'ai pas trop le temps de venir aider car=20
j'ai un probl=E8me et j'aimerai avoir l'aide des Masters ;o)
Avec l'enregistreur de macro et l'assistant de cr=E9ation=20
de tables pivot, j'ai =E9crit ces lignes :

ActiveWorkbook.PivotCaches.Add(SourceType:=3DxlDatabase,=20
SourceData:=3D"Sheet1!R1C1:R379C6").CreatePivotTable=20
TableDestination:=3D"", TableName:=3D"PivotTable0",=20
DefaultVersion:=3DxlPivotTableVersion10

ActiveSheet.PivotTableWizard=20
TableDestination:=3DActiveSheet.Cells(3, 1)

ActiveSheet.PivotTables("PivotTable0").AddFields=20
RowFields:=3DArray("Date", "Country"),=20
ColumnFields:=3D"Segment", PageFields:=3D"Document"

ActiveSheet.PivotTables("PivotTable0").PivotFields
("HowMuch").Orientation =3D xlDataField

ActiveSheet.PivotTables("PivotTable0").PivotFields
("Document").CurrentPage =3D "Forecast"

' Cette ligne bloque---------
ActiveWorkbook.Worksheets("Sheet2").PivotTables
("PivotTable0").PivotCache.CreatePivotTable=20
TableDestination:=3D"", TableName:=3D"PivotTable1",=20
DefaultVersion:=3DxlPivotTableVersion10
' Cette ligne bloque---------

ActiveSheet.PivotTables("PivotTable1").AddFields=20
RowFields:=3D"Date", ColumnFields:=3D"Document",=20
PageFields:=3DArray("Country", "Segment")

ActiveSheet.PivotTables("PivotTable1").PivotFields
("HowMuch").Orientation =3D xlDataField

Charts.Add

ActiveChart.Location Where:=3DxlLocationAsNewSheet

ActiveChart.ChartType =3D xlLineMarkers

En fait je fais une premi=E8re table pivot, puis tout de=20
suite apr=E8s, j'en fait une seconde avec un graphique,=20
mais il me retourne une erreur 1004 qui, avec l'aide,=20
n'apporte rien car c'est une erreur objet... Je ne=20
comprend pas pourquoi la macro ne fonctionne pas ?

P.S. : Les donn=E9es sont sur la Sheets("Sheet1") et il n'y=20
a pas d'autre feuille, donc la cr=E9ation de la feuille sur=20
laquelle se place la premi=E8re table pivot est bien Sheet2.
=20
Merci de votre aide.

Bye
Yann

1 réponse

Avatar
Michel B.
Bonjour,

Je ne suis que très peu familier avec les objets TDC,
toutefois l'erreur 1004 (erreur de dépacement) indique
que l'un des objets n'est pas atteint par l'indice
sélectionné.

Vous devez vérifier, tous les indices (ex.: sheets
("indice1"), range("Indice2"), ainsi que la définition des
type de variables, affectation d'un type "Long" vers un
type "Int".

Michel B.

-----Message d'origine-----
Bonjour,
En ce moment je n'ai pas trop le temps de venir aider car
j'ai un problème et j'aimerai avoir l'aide des Masters ;o)
Avec l'enregistreur de macro et l'assistant de création
de tables pivot, j'ai écrit ces lignes :

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData:="Sheet1!R1C1:R379C6").CreatePivotTable
TableDestination:="", TableName:="PivotTable0",
DefaultVersion:=xlPivotTableVersion10

ActiveSheet.PivotTableWizard
TableDestination:¬tiveSheet.Cells(3, 1)

ActiveSheet.PivotTables("PivotTable0").AddFields
RowFields:=Array("Date", "Country"),
ColumnFields:="Segment", PageFields:="Document"

ActiveSheet.PivotTables("PivotTable0").PivotFields
("HowMuch").Orientation = xlDataField

ActiveSheet.PivotTables("PivotTable0").PivotFields
("Document").CurrentPage = "Forecast"

' Cette ligne bloque---------
ActiveWorkbook.Worksheets("Sheet2").PivotTables
("PivotTable0").PivotCache.CreatePivotTable
TableDestination:="", TableName:="PivotTable1",
DefaultVersion:=xlPivotTableVersion10
' Cette ligne bloque---------

ActiveSheet.PivotTables("PivotTable1").AddFields
RowFields:="Date", ColumnFields:="Document",
PageFields:=Array("Country", "Segment")

ActiveSheet.PivotTables("PivotTable1").PivotFields
("HowMuch").Orientation = xlDataField

Charts.Add

ActiveChart.Location Where:=xlLocationAsNewSheet

ActiveChart.ChartType = xlLineMarkers

En fait je fais une première table pivot, puis tout de
suite après, j'en fait une seconde avec un graphique,
mais il me retourne une erreur 1004 qui, avec l'aide,
n'apporte rien car c'est une erreur objet... Je ne
comprend pas pourquoi la macro ne fonctionne pas ?

P.S. : Les données sont sur la Sheets("Sheet1") et il n'y
a pas d'autre feuille, donc la création de la feuille sur
laquelle se place la première table pivot est bien Sheet2.

Merci de votre aide.

Bye
Yann
.