Mxwell
Messages postés3Date d'inscriptionmardi 9 décembre 2008StatutMembreDernière intervention19 janvier 2009
-
2 janv. 2009 à 17:00
Vampirelo
Messages postés10Date d'inscriptionjeudi 3 juillet 2008StatutMembreDernière intervention13 janvier 2009
-
13 janv. 2009 à 10:54
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.
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
En executant pas à pas, l'erreur pointe sur " ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= ActiveWorkbook.Connections("Lancer la requête à partir de Tcpos13"), Version _
avec un "Erreur d'exécution '5' : Argument ou appel de procédure incorrect."
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.
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
Cette fois, l'erreur pointe sur " Set PT = PTCache.CreatePivotTable(TableDestination:="Sheets('Feuil2').Cells(3,3)")"
J'utilise Excel 2007, a priori, toutes les références nécessaires sont activées.