re
oui par exemple un truc vite fait comme ceci
tu a une liste à cocher qui s'allimente toute seule
tu a un bouton pour imprimer selon ton choix dans la liste
tu un checkbox pour tout chopper ou tout désectionner
et en fin un checkbox pour soit imprimer pdf par pdf ou tout ce que tu a selectionner dans un seul pdf
j' en ai profiter pour faire la mise en page en effet tes tableau etaient couper dans la largeur
l'impression etait en portrait au lieu de paysage +adaptation a 1 page en largeur etc.. etc...
alors forcement le code change un peu
dans le userform
Private Sub BtExport_Click()
Dim I&, mesfeuilles, T(), A&
If CheckOnePdF Then
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) Then A = A + 1: ReDim Preserve T(1 To A): T(A) = ListBox1.List(I)
Next
crePDF T
Else
For I = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(I) Then crePDF Sheets(ListBox1.List(I))
Next
End If
End Sub
Private Sub CheckAllsheets_Click()
Dim I&
With ListBox1
For I = 0 To .ListCount - 1
If CheckAllsheets.Value Then .Selected(I) = True Else .Selected(I) = False
Next
End With
End Sub
Private Sub UserForm_Activate()
Dim Sh As Sheet
Btprint.Caption = "Imprimer selon le choix" & vbCrLf & "dans la liste"
For Each Sh In Sheets: ListBox1.AddItem Sh.Name: Next
End Sub
et ta sub crepdf elle se retrouve comme ceci
Function crePDF(Optional Obj As Variant = Nothing)
Dim pdfFile As String,objet
If IsArray(Obj) Then Sheets(Obj).Select: Set objet = ActiveSheet: nom = ThisWorkbook.Name Else nom = Obj.Name: Set objet = Obj
pdfFile = ThisWorkbook.Path & "\" & nom & Format(Now, "_dd-mm-yyyy_hh_mm_ss") & ".pdf" '"X:\"
objet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFile, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Function
bon j'ai fait ca vite fait hein c'est perfectible
d'ailleurs pour tout te dire on peut exporter juste la plage au lieu d'une feuille complete
mais bon on va pas chippoter là hein