Salut Edouard, salut le forum,
ci-dessous la macro modifiée. J'espère que ça t'ira.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Valeur As String
'Dim Nom As Variant
Dim x As Byte
' recopie le titre Coupe formation Niv 4 et sa date de la feuille date
' pour une autre feuille ajouter ;zone so ..etc
Valeur = " Coupe formation Niv 4 " & ThisWorkbook.Sheets("Date").Range("H12")
'For Each Nom In Array("Zone O", "Zone SO")
'ça ne marchera que si tu rajoutes des feuilles après la feuille "Dates"
For x = 2 To ThisWorkbook.Sheets.Count
With ThisWorkbook.Sheets(x) '(Nom)
.PageSetup.CenterHeader = Valeur
.Unprotect
.PageSetup.PrintArea = .Range("A5").Address & ":" & .Range("AZ" & .Range("A5:A154").SpecialCells(xlCellTypeConstants, 23).Rows.Count + 4).Address
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
Next x 'Nom
End Sub
À plus,
Robert