Bonjour,
Tu voulais une Marco, voilà une Macro.
Cdlt.
Option Explicit
Public Sub CreateAverage()
Dim wb As Workbook
Dim wsData As Worksheet
Dim lo As ListObject
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim rngGroup As Range
Application.ScreenUpdating = False
Set wb = ThisWorkbook
Set wsData = wb.Worksheets("Occitanie")
Set lo = wsData.ListObjects("t_Occitanie")
On Error Resume Next
wsData.PivotTables("TCD_Occitanie").TableRange2.Clear
On Error GoTo 0
Set PTCache = wb.PivotCaches.Create(xlDatabase, lo.Range)
Set PT = PTCache.CreatePivotTable(wsData.Cells(4, 8), "TCD_Occitanie")
With PT
.ManualUpdate = False
.AddFields RowFields:="Date"
With .PivotFields("TMoy (°C)")
.Orientation = xlDataField
.Function = xlAverage
.NumberFormat = "#,##0.00_ ;[Red](#,##0.00) ;"
.Caption = "Moyenne TMoy (°C) "
End With
.TableStyle2 = "PivotStyleLight1"
.RowAxisLayout xlTabularRow
.ColumnGrand = False
.DisplayFieldCaptions = False
.ShowDrillIndicators = False
Set rngGroup = .PivotFields("Date").DataRange
rngGroup.Cells(1).Group Periods:=Array(False, False, False, False, True, False, True)
.PivotFields("Date").Caption = "Mois"
With .PivotFields("Années")
.Caption = "Année"
.Subtotals(1) = False
.RepeatLabels = True
End With
.ManualUpdate = True
End With
End Sub