Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim DerLig As Long, DerCol As Integer, sh As Worksheet
For Each sh In ActiveWindow.SelectedSheets
Select Case sh.CodeName
'Feuil1 est le nom de la propriété "Name" de
'l'objet Feuille visible seulement en VBA
'Rien à voir avec le nom de l'onglet
Case Is = "Feuil1"
With sh
If Not IsEmpty(.UsedRange) Then
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
.PageSetup.PrintArea = .Range("A1", sh.Cells(DerLig, DerCol)).Address
.PrintOut 'Définir les paramètres de la méthode si besion
.PageSetup.PrintArea = ""
End If
End With
Cancel = True
Case Else
Cancel = False
End Select
Next
End Function