Bonjour David
La macro d'impression d'une feuile de stock qui peut être facilement tranposable.
Dans le code, tu as une vérification de la décision d'imprimer (c'est pour les exités du click !) la déprotection de la feuille, la mise en place d'un logo en entête à gauche (ce logo doit être situé dans le même répertoire que le classeur actif), un titre au milieu d'entête et le nom de la feuille à droite.
Sub ImprimerStocks()
If ActiveSheet.Name = "Acceuil" Then Exit Sub
Application.ScreenUpdating = False
MyValue = MsgBox("Souhaitez-vous imprimer la feuille ?", vbYesNo + vbQuestion + vbDefaultButton2, "IMPRESSION DE FEUILLE")
If MyValue = vbNo Then Exit Sub
ActiveSheet.Unprotect
Range([C149], [C1000].End(xlUp).Offset(1, 0)).EntireRow.Hidden = True
With ActiveSheet.PageSetup
.PrintArea = Range("B2").CurrentRegion.Address
.LeftHeaderPicture.Filename = _
ActiveWorkbook.Path & "\" & "logo.gif"
.PrintTitleRows = "$2:$2"
.LeftHeader = "&G"
.CenterHeader = "&""Times New Roman,Gras""&25" & Chr(10) & "Gestions des Stocks"
.RightHeader = "&""Times New Roman,Gras""&25" & Chr(10) & ActiveSheet.Name
.CenterFooter = "Page &P de &N"
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(2)
.BottomMargin = Application.InchesToPoints(0.5118)
.PrintGridlines = False
.Orientation = xlLandscape
.PaperSize = xlPaperA4
.FirstPageNumber = 1
.BlackAndWhite = True
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveSheet.PrintOut Copies:=1, Collate:=True
Range([C1000].End(xlUp).Offset(1, 0), [C149]).EntireRow.Hidden = False
ActiveSheet.PageSetup.PrintArea = ""
ActiveSheet.Protect
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Cordialement
CBernardT