Stampare più fogli Excel in un unico PDF
Se si hanno diverse tabelle e dati su più fogli excel, e si vorrebbero presentare i dati in un documento unico, sarebbe dispendioso stampare i singoli fogli e poi unirli. Pertanto vediamo come salvare/stampare più fogli Excel in un unico file PDF, facendo uso di una MACRO VBA.
Una vecchia soluzione per versioni Excel < 2010 è la seguente, ma prima di eseguire la macro ricordati di installare/preimpostare una stampante virtuale nel tuo PC.
Sub open_folder()
Dim file_xls As String, fol As String, fso As Object, f As Object
Dim wb1 As Workbook, wb2 As Workbook, sh As Worksheet
'avviso! impostare PDFCreator come stampante predefinita.
If MsgBox("Hai impostato PDFCreator come stampante predefinita?", vbQuestion + vbYesNo, "Attenzione") = vbNo Then Exit Sub
'chiedo il nome del file tipo
file_xls = InputBox("Inserisci il nome del file Excel da cercare")
If file_xls = "" Then Exit Sub
'apro la finestra di dialogo di sfoglia cartelle
fol = CreateObject("Shell.Application").BrowseForFolder(0, "Scegli una cartella", 0, 0).Self.Path
'creo l'oggetto file system
Set fso = CreateObject("Scripting.FileSystemObject")
Set wb1 = Workbooks.Add
'scorro i file di quella cartella e se coincidono col nome del file excel specificato
'li apro e metto insieme tutti i fogli in un unico pdf
For Each f In fso.GetFolder(fol).Files
If LCase(Left(f.Name, 16)) = LCase(file_xls) Then
'aprire ogni file, recuperare ogni sheet, inviarlo alla stampante virtuale pdf
Set wb2 = Workbooks.Open(f)
For Each sh In wb2.Worksheets
sh.Copy after:=wb1.Sheets(wb1.Sheets.Count)
Next
wb2.Close savechanges:=False
End If
Next
wb1.PrintOut
End Sub
|
Un’altra soluzione macro da provare è la seguente, che probabilmente funzionerà anche su versioni più recenti di Excel:
Sub exportToPdfsomeSheetsTo1pdf()
'Sheets(Array("Foglio1", "Foglio2")).Select ' inserisci i fogli da esportare
Sheets.Select ' tutti i fogli
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"C:UsersNomeUtenteDesktopNewBook.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Sheets(1).Select
End Sub
|
Se le soluzioni di questa pagina non hanno funzionato, facci sapere che versione di Excel hai e ti forniremo le modifiche necessarie da adottare.

