Sub Fichier_pdf()
Dim sRep As String
Dim sFilename As String
Dim LHeure As String
Dim LaDate As String
Dim Nom As String
Dim Ind As Integer, NomAvant(10) As String, NomTrié() As String
LHeure = Format(Time, "HMS")
LaDate = Format(Date, "dd" & "." & "mm" & "." & "yyyy")
Nom = "Création du bordereau le"
With ActiveSheet.PageSetup
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
End With
' Tableau des feuilles du classeur
For Ind = 1 To Sheets.Count
NomAvant(Ind) = Sheets(Ind).Name
Next Ind
' Ordre souhaité des feuilles pour l'impression
NomTrié = Split("Page_1,1 - Bordereau,Page_5,Page_6,Page_7,Page_8,Page_9,Page_10,Page_11,Page_12", ",")
' Déplacer les feuilles dans le bon ordre
On Error Resume Next
For Ind = 0 To Sheets.Count - 1
Sheets(NomTrié(Ind)).Move Before:=Sheets(Ind + 1)
Next Ind
On Error GoTo 0
' Sélectionner les feuilles triées
Sheets(NomTrié).Select
'
sRep = ThisWorkbook.Path
sFilename = Nom & " " & LaDate & " " & LHeure & ".pdf"
' Imprimer les feuilles sélectionnées
ActiveSheet.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sRep & "\" & sFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
' Remettre les onglets dans l'ordre initial (si nécessaire)
On Error Resume Next
For Ind = 1 To Sheets.Count
Sheets(NomAvant(Ind)).Move Before:=Sheets(Ind)
Next Ind
On Error GoTo 0
Sheets("1 - Bordereau").Select
' Message de confirmation
MsgBox "Création du fichier PDF a été effectuée", Title:="Mon document"
End Sub