Option Explicit
Sub TCD()
Dim ShtSrc As Worksheet, ShtDst As Worksheet
Application.ScreenUpdating = False
Set ShtSrc = ActiveSheet ' "Memorisation" de la feuille active
If ShtSrc.Range("A65536").End(xlUp).Row > 1 Then ' Verification qu'il y a des donnees dans la feuille active
' Suppression de l'ancien TCD pour le mois, si il existe deja
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.Sheets("TCD " & ShtSrc.Name).Delete
Application.DisplayAlerts = True
On Error GoTo 0
Set ShtDst = Sheets.Add ' Ajout d'une feuille pour le TCD
ShtDst.Name = "TCD " & ShtSrc.Name ' Nommage de la feuille en ajoutant le mois
'Creation du TCD
ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'" & ShtSrc.Name & "'!" & ShtSrc.UsedRange.Address).CreatePivotTable TableDestination:="'" & ShtDst.Name & "'!R1C1", TableName:="TCD " & ShtSrc.Name, DefaultVersion:=xlPivotTableVersion10
With ShtDst.PivotTables(ShtDst.Name)
.PivotFields("Stat ").Orientation = xlRowField ' mise en ligne du champ Stat
' ajout des champs de donnees
.AddDataField .PivotFields("Ventes "), "Somme de Ventes", xlSum
.AddDataField .PivotFields("LivrÚe "), "Somme de Livrée", xlSum
[COLOR=Red].DataPivotField.Orientation = xlColumnField[/COLOR] ' mise en colonne des champs de donnees
End With
ThisWorkbook.ShowPivotTableFieldList = False ' fermeture de la fenetre de selection de champs
Set ShtDst = Nothing
End If
Set ShtSrc = Nothing
Application.ScreenUpdating = True
End Sub