Sub Imprimer()
Dim Npage&, Nder%, pas%, Nmasque%, n&, lig&, p%
With Feuil1 'CodeName
.[B3] = Int(Val(.[B3]))
Npage = Application.Ceiling(.[B3] / 8, 1)
If Npage < 1 Then Exit Sub
Nder = .[B3] - 8 * (Npage - 1) 'nombre d'étiquettes en dernière page
End With
pas = 14 'à adapter
Nmasque = 3 'nombre de lignes à masquer à chaque pas, à adapter
With Feuil7 'CodeName de la feuille à imprimer
.Visible = xlSheetVisible 'au cas où...
.Copy 'document auxiliaire
End With
With ActiveWorkbook.Sheets(1)
For n = 1 To Npage
lig = 1 + (n - 1) * pas * 4 'n° de la 1ère ligne
'---masquage des lignes à ne pas imprimer(12-13-14)---
For p = 1 To 4
.Rows(lig + pas * p - Nmasque).Resize(Nmasque).Hidden = True
Next
'---effacement des étiquettes excédentaires en dernière page---
If n = Npage Then Rows(lig + pas * Application.Ceiling(Nder, 2) / 2).Resize(pas * 4).Clear
'---mise en page---
With .PageSetup
.PrintArea = "$A$" & lig & ":$Q$" & lig + pas * 4 - 1 'zone d'impression
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
'---impression---
.PrintPreview 'pour tester
'.PrintOut 'pour imprimer
Next
.Parent.Close False 'fermeture du document auxiliaire
End With
End Sub