Bonjour à toutes et à tous,
Il y a du monde sur la question.
Une proposition, la meilleure sans aucun doute.
Cdlt.
Option Explicit
Public Sub Create_Workbooks()
Dim wb As Workbook, wb2 As Workbook
Dim ws As Worksheet, ws2 As Worksheet
Dim sPath As String, sFile As String
Dim pt As PivotTable
Dim pi As PivotItem
Dim rng As Range
Dim n As Long, i As Long
Application.ScreenUpdating = False
Set wb = ThisWorkbook
sPath = wb.Path & Application.PathSeparator
Set ws = wb.Worksheets("Liste")
Set pt = ws.PivotTables(1)
pt.PageFields(1).ClearAllFilters
For Each pi In pt.PageFields(1).PivotItems
pt.PageFields(1).CurrentPage = pi.Name
Set rng = pt.PivotFields("Project").DataRange
n = rng.Rows.Count
sFile = pi.Name
Set wb2 = Workbooks.Add(xlWBATWorksheet)
With wb2
.Worksheets(1).Name = rng.Cells(1).Value
If n > 1 Then
For i = 2 To n
.Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = rng.Cells(i).Value
Next i
End If
.SaveAs Filename:=sPath & sFile & ".xlsx", FileFormat:=51
.Close savechanges:=False
End With
Next pi
pt.PageFields(1).ClearAllFilters
End Sub