Tableau croisé dynamique - Macro - Erreur n°5.

Mxwell Messages postés 3 Date d'inscription mardi 9 décembre 2008 Statut Membre Dernière intervention 19 janvier 2009 - 2 janv. 2009 à 17:00
Vampirelo Messages postés 10 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 13 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
                        
    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

En executant pas à pas, l'erreur pointe sur " 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"

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.

Quelqu'un aurait-il une idée?

En vous remerciant d'avance :s

1 réponse

Vampirelo Messages postés 10 Date d'inscription jeudi 3 juillet 2008 Statut Membre Dernière intervention 13 janvier 2009
13 janv. 2009 à 10:54
Bonjour à toi,
Aurais-tu depuis trouver une solution ?
J'ai le même problème : http://www.vbfrance.com/forum/sujet-XLS07-TABLEAU-CROISE-DYNAMIQUE_1253869.aspx
Merci d'avance
0
Rejoignez-nous