Re,
Quelles explications souhaites-tu ?
Le travail est exécutée par une procédure VBA
Pour visualiser la procédure :
ALT 11 pour ouvrir l'éditeur VBE
Voir Module1
Option Explicit
Public Sub CopyPivotPages()
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet
Dim pt As PivotTable, pf As PivotField, pi As PivotItem
Dim lRow As Long
With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With
Set wb = ActiveWorkbook
Set ws = wb.Worksheets("TCD Général")
Set pt = ws.PivotTables(1)
Set pf = pt.PageFields(1)
lRow = 1
pf.ClearAllFilters
On Error Resume Next
Worksheets("Liste Plats").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Set ws2 = wb.Worksheets.Add
ws2.Name = "Liste Plats"
For Each pi In pf.PivotItems
With pf
.PivotItems(pi.Name).Visible = True
.CurrentPage = pi.Name
End With
With ws2.Cells(lRow, 1)
.Value = pi.Name
.Font.Bold = True
End With
pt.TableRange1.Copy
With ws2.Cells(lRow + 1, 1)
.PasteSpecial xlPasteValuesAndNumberFormats
.PasteSpecial xlPasteFormats
.PasteSpecial xlPasteColumnWidths
End With
Application.CutCopyMode = False
lRow = ws2.Cells(Rows.Count, 1).End(xlUp).Row + 2
Next pi
ActiveWindow.DisplayGridlines = False
pf.ClearAllFilters
End Sub