Bonjour à tous. (Et bonne année)
J'ai un petit souci lors de la création d'un tableau croisé dynamique à l'aide d'une macro.
Comme vous pouvez le voir ci-dessous, j'attaque une base Oracle pour remplir mes champs avec Ms Query.
En exécutant l'assistant de macro, le tableau se crée, les données sont correctement intégrées au tableau. J'arrête l'enregistrement, et là, impossible d'exécuter la requête de nouveau.
En feuilletant les forums, j'ai vu pas mal de topic évoquant cette erreur, sans résultat.
En executant pas à pas, l'erreur pointe sur :
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 Sub Macro8() Workbooks("MermozNew2.xlsm").Connections.Add _ "Lancer la requête à partir de Tcpos", "", _ "ODBC;DRIVER={Microsoft ODBC for Oracle};UID=base;;", Array( _ "SELECT TILLS.DESCRIPTION, PROFIT_CENTERS.DESCRIPTION, OPERATORS.DESCRIPTION, SHOPS.DESCRIPTION, TRANSACTIONS.TOTAL_AMOUNT" & Chr(13) & "" & Chr(10) & "FROM base.OPERATORS OPERATORS, BASE.PROFIT_CENTERS PROFIT_CENTERS, base.SHOPS" _ , " SHOPS, base.TILLS TILLS, base.trANSACTIONS TRANSACTIONS" & Chr(13) & "" & Chr(10) & "WHERE SHOPS.ID = TRANSACTIONS.SHOP_ID AND TRANSACTIONS.TILL_ID = TILLS.ID AND TRANSACTIONS.PROFIT_CENTER_ID = PROFIT_CENTERS.ID AND TRANSACTIO" _ , "NS.OPERATOR_ID = OPERATORS.ID"), 2 ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _ ActiveWorkbook.Connections("Lancer la requête à partir de Tcpos13"), Version _ :=xlPivotTableVersion12).CreatePivotTable TableDestination:="Sheets('Feuil2')", _ TableName:="Tableau croisé dynamique6", DefaultVersion:= _ xlPivotTableVersion12 Cells(7, 2).Select ActiveWorkbook.ShowPivotTableFieldList = True ActiveSheet.PivotTables("Tableau croisé dynamique6").AddDataField ActiveSheet. _ PivotTables("Tableau croisé dynamique6").PivotFields("TOTAL_AMOUNT"), _ "Somme de TOTAL_AMOUNT", xlSum ...Code... End Sub
avec un "Erreur d'exécution '5' : Argument ou appel de procédure incorrect."
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= ActiveWorkbook.Connections("Lancer la requête à partir de Tcpos13"), Version _ :=xlPivotTableVersion12).CreatePivotTable TableDestination:="Sheets('Feuil2')", _ TableName:="Tableau croisé dynamique6", DefaultVersion:= _ xlPivotTableVersion12
En simplifiant le code, l'erreur viendrait de la définition de "Table Destination" ou de "PivotTableVersion".
J'ai procédé un peu différemment, toujours avec Ms Query, le résultat étant le même.
Cette fois, l'erreur pointe sur :
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 Sub créationTCD() Dim PTCache As PivotCache Dim PT As PivotTable Sheets("Feuil2").Select ...Code... Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal, SourceData:=ActiveWorkbook.Connections("Lancer la requête à partir de Tcpos")) Set PT = PTCache.CreatePivotTable(TableDestination:="Sheets('Feuil2').Cells(3,3)") With PT .PivotFields("DESCRIPTION1").Orientation = xlRowField .Position = 1 ...Code... End Sub
J'utilise Excel 2007, a priori, toutes les références nécessaires sont activées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set PT = PTCache.CreatePivotTable(TableDestination:="Sheets('Feuil2').Cells(3,3)")
Quelqu'un aurait-il une idée?
En vous remerciant d'avance :s
Partager