Bonjour,
malgré la lecture de moults tutos présentants des méthodes diverses et variées, je n'arrive pas à créer un TCD sur une feuille Excel
J'alimente une première feuille avec les données que je veux analyser via un export Access par un
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "QueryTemp", sFile
Ensuite, j'ouvre mon fichier Excel
1 2 3 4
| 'Création instance Excel
Set xlsApp = Excel.Application
'Ouverture fichier Excel
Set XlsWB = xlsApp.Workbooks.Open(sFile, , False) |
puis je veux créer mon TCD
1 2 3 4
| XlsWB.Activate
XlsWB.Sheets(sSheetName).Select 'Pas sûr que ces 2 lignes soient obligatoires, mais dans le doute...
XlsWB.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=Sheets("QueryTemp").Range("A1:F751")).CreatePivotTable _
TableDestination:=Sheets("Domain_DATA").Range("A3"), tableName:="TCD", DefaultVersion:=xlPivotTableVersion12 |
et là, je coince, il y a une erreur "Argument ou appel de procedure incorrecte".
J'ai essayé
- avec xlPivotTableVersion10 ou xlPivotTableVersion12
- avec SourceData:=Sheets("QueryTemp").Range("A1:F751"),
avec SourceData:="QueryTemp!R1C1:R751C6"
avec SourceData:=Sheets("QueryTemp").Range("A1:F751").address
avec SourceData:=Sheets("QueryTemp").Range("A1:F751").address(,,xlR1C1)
avec SourceData:=Sheets("QueryTemp").Range("A1:F751").address(,,xlR1C1,true)
Lorsque j'utilise l'enregistreur de Macro Excel, il me donne :
1 2 3 4
| xlsApp.ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"QueryTemp!R1C1:R751C6", Version:=xlPivotTableVersion12). _
CreatePivotTable TableDestination:="TCD!R1C1", tableName:= _
"Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion12 |
Il faut utiliser CREATE ou ADD ??? J'ai fais tous les tests ci-dessus avec les 2 méthodes.
J'ai testé aussi la méthode ".PivotTableWizard" qui rend "la méthode PivotTableWizard de la classe Worksheet a échoué"
Pouvez-vous m'aidez ?
Je coince déjà avec des références absolues, alors je ne vous raconte pas avec des références relatives (ce qu'il faudra que j'arrive à implémenter, mais j'aimerai déjà comprendre ce qui coince dans ces 3 malheureuses lignes de code).
Merci d'avance pour votre aide.
Partager