Automatisation d'un TCD
Bonjour à tous,
Je recherche à faire à faire une macro pour exécuter un tableau croisé dynamique. Je m'explique, j'ai un classeur qui contient plusieurs feuilles. Je voudrais lancer une macro qui selectionne les 2 premières colonne de ma feuille 2 (A et B ) qui mette A en filtre du rapport et B en étiquette puis, une fois le tcd, le coller en feuille1 en C2 par exmple...
Voici un morceau de code mais il ne fonctionne pas..
Sub Macro5()
'
' Macro5 Macro
'
'
Range("A1:B531").Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Exp.Y011!R1C1:R531C2", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Feuil6!R3C1", TableName:="Tableau croisé dynamique9", _
DefaultVersion:=xlPivotTableVersion12
Sheets("Feuil2").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields( _
"N°projet")
.Orientation = xlPageField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique9").PivotFields( _
"EOTP cmde")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique9").Name = _
"Tableau croisé dynamiqueE"
End Sub
Merci d'avance...!
Bonjour,
Ton code pourrait ressembler à celui-ci :
Option Explicit
Public Sub creer_TCD()
Dim rng As Range
Dim ptCache As PivotCache
Dim pt As PivotTable
Application.ScreenUpdating = False
Set rng = Range("A1:B531")
Set ptCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, _
SourceData:=rng, _
Version:=xlPivotTableVersion12)
Worksheets.Add
Set pt = ptCache.CreatePivotTable _
(TableDestination:=[C3], _
TableName:="TCD_1", _
DefaultVersion:=xlPivotTableVersion12)
pt.ManualUpdate = True
pt.AddFields RowFields:="EOTP cmde", PageFields:="N°projet"
pt.ManualUpdate = False
Set pt = Nothing
Set ptCache = Nothing
Set rng = Nothing
End Sub
Re,
Ca marche nickel ! Super !
Merci bcp Jean Eric !!!!!!!
Bonne continuation