Bonjour ,j'aie besoin de creer une union de 3 colonnes sur une base de donnée .xls .
Puis je construis un TCD à partir de ces 3 colonnes .
Le code ci-dessus fonctionne mais il est un peu lent parce que la plage selectionnée concerne toute la base de donnée .
Mon idée est de gagner du temps en sélectionnant 3 colonnes seulement de ma base de donnée .
En fait j'aie besoin uniquement des colonnes L , P et AY et non pas toutes les colonnes $A:$CN (de A à CN) . Comment faire ? La methode union marche-t-elle avec une base de donnée fermée ?
Puis je construis un TCD à partir de ces 3 colonnes .
Le code ci-dessus fonctionne mais il est un peu lent parce que la plage selectionnée concerne toute la base de donnée .
Mon idée est de gagner du temps en sélectionnant 3 colonnes seulement de ma base de donnée .
En fait j'aie besoin uniquement des colonnes L , P et AY et non pas toutes les colonnes $A:$CN (de A à CN) . Comment faire ? La methode union marche-t-elle avec une base de donnée fermée ?
Code:
Sub Solution1()
Dim pt As PivotTable
Dim ws As Worksheet
Dim nomdusheet As String
Set ws = ActiveWorkbook.Worksheets.Add
nomdusheet = ws.Name
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _
SourceData:="'C:\Documents and Settings\a\Bureau\Fichiers excel\[NORD.xls]Liste'!$A:$CN").CreatePivotTable _
TableDestination:="'[ETUDES C.T.R.xls]" & nomdusheet & "'!R1C1", _
TableName:="PivotTable1", _
DefaultVersion:=xlPivotTableVersion10
Set pt = ActiveWorkbook.Sheets(nomdusheet).PivotTables("PivotTable1")
pt.AddFields "L_scodper", "L_sdesagc"
pt.AddDataField pt.PivotFields("L_inbrpla"), , xlSum
Set ws = Nothing
Set pt = Nothing
End Sub