Bonjour Bart oui c'est nickel merci en faite j'ai pris la toute première macro que t'avais faite, c'est la seule qui ne pose pas de souci pour ouvrir les pdf, j'ai donc fais deux macros et comme j'ai dis avec deux boutons "Pdf montré" et "Pdf masqué" avec le truc le plus simple pour créer le pdf sans avoir a choisir, comme t'as vu, j'ai mis le texte de gauche à l'horizontal, c'est mieux. Et donc ça créer le pdf et l'ouvrir dans Adode reader ou autre qui ouvre des pdf ensuite la personne choisira lequel imprimer, c'est un fichier qui sera partagé, c'est pour donner aux parents d'élèves. Cela fonctionne j'imagine qu'avec Excel 2010 et supérieur.
Sub PDF_Masquer_cycle4()
Dim i As Integer
Dim fileName As String
Dim activeSheetName As String
' Obtenez le nom de la feuille active
activeSheetName = ActiveSheet.Name
With ActiveSheet ' Utilisez la feuille active
MasquerLignes
With .PageSetup
.PrintArea = "A8:F75,A77:F157,A159:G218" ' La plage unique que vous souhaitez utiliser
.PrintTitleRows = "$1:$7"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 5 '5 pages
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.2)
.TopMargin = Application.InchesToPoints(0.1)
.BottomMargin = Application.InchesToPoints(0.1)
.CenterFooter = "Page &P / &N"
.FooterMargin = Application.InchesToPoints(0.1)
End With
'.PrintPreview
' Générez le nom du fichier en utilisant le nom de la feuille active
fileName = activeSheetName & "-" & Format(Now, "ddmmyyyy")
.ExportAsFixedFormat Type:=xlTypePDF, fileName:=ThisWorkbook.Path & "\" & fileName & ".pdf", OpenAfterPublish:=True
End With
End Sub
Sub PDF_Montrer_cycle4()
Dim i As Integer
Dim fileName As String
Dim activeSheetName As String
' Obtenez le nom de la feuille active
activeSheetName = ActiveSheet.Name
With ActiveSheet ' Utilisez la feuille active
MontrerLignes
With .PageSetup
.PrintArea = "A8:F48,A49:G91,A93:F120,A122:G157,A159:F218" ' La plage unique que vous souhaitez utiliser
.PrintTitleRows = "$1:$7"
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 5 '5 pages
.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.2)
.TopMargin = Application.InchesToPoints(0.1)
.BottomMargin = Application.InchesToPoints(0.1)
.CenterFooter = "Page &P / &N"
.FooterMargin = Application.InchesToPoints(0.1)
End With
'.PrintPreview
' Générez le nom du fichier en utilisant le nom de la feuille active
fileName = activeSheetName & "-" & Format(Now, "ddmmyyyy")
.ExportAsFixedFormat Type:=xlTypePDF, fileName:=ThisWorkbook.Path & "\" & fileName & ".pdf", OpenAfterPublish:=True
End With
End Sub