#Excel – Come salvare rapidamente in PDF il foglio attivo [VBA]

In Microsoft Excel mi capita spesso di voler salvare il foglio su cui sto lavorando in formato PDF.

Da Excel 2010 in avanti esiste una funzione nativa per effettuare questa operazione: è sufficiente cliccare su FILE -> Esporta -> Crea documento PDF/XPS

Salva in PDF1

… ma a noi non è sufficiente, vogliamo rendere la cosa ancora più immediata!

Il trucco che utilizzo di solito è il seguente:

1 – Salvo il file Excel in modo che possa contenere macro

Questo è facile.

Nella finestra di dialogo “Salva con nome”, oltre ad inserire il nome a nostra scelta, dall’elenco a discesa “Salva come:” occorrerà selezionare la voce “Cartella di lavoro con attivazione macro di Excel”

Salva in PDF2

2 – Creo un nuovo modulo VBA

Occorre aprire l’editor di VBA incluso nell’installazione standard di Excel premendo contemporaneamente la combinazione di tasti Alt+F11.

Nella maschera che ci si propone selezioniamo il progetto VBA relativo alla cartella in uso e usando il tasto destro del mouse inseriamo un nuovo modulo standard:

Salva in PDF3

Nel nuovo modulo così creato inseriamo il seguente codice:

  1. Sub SalvaInPDF()
  2. Dim ws As Worksheet
  3. Dim strIndirizzo As String
  4. Dim myFile As Variant
  5. Dim strFile As String
  6. On Error GoTo errHandler
  7.  
  8. Set ws = ActiveSheet
  9.  
  10. 'apre la finestra di dialogo per il salvataggio dei file
  11. 'la cartella di default è la stessa della cartella di excel
  12. strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
  13. & "_" _
  14. & Format(Now(), "yyyy-mm-dd_hh-mm") _
  15. & ".pdf"
  16. strFile = ThisWorkbook.Path & "" & strFile
  17.  
  18. myFile = Application.GetSaveAsFilename _
  19. (InitialFileName:=strFile, _
  20. FileFilter:="PDF Files (*.pdf), *.pdf", _
  21. Title:="Seleziona la cartella e inserisci il nome del file da salvare")
  22.  
  23. If myFile <> False Then
  24. ws.ExportAsFixedFormat _
  25. Type:=xlTypePDF, _
  26. Filename:=myFile, _
  27. Quality:=xlQualityStandard, _
  28. IncludeDocProperties:=True, _
  29. IgnorePrintAreas:=False, _
  30. OpenAfterPublish:=False
  31.  
  32. MsgBox "Il file PDF è stato salvato."
  33. End If
  34.  
  35. exitHandler:
  36. Exit Sub
  37. errHandler:
  38. MsgBox "Non ho potuto salvare il file PDF"
  39. Resume exitHandler
  40. End Sub

 

Il codice apre la finestra di dialogo per il salvataggio, impostata in automatico sulla stessa cartella del nostro file Excel, e ci permette di dare un nome al file PDF (di default presenterà il nome del foglio di lavoro, la data e l’ora di salvataggio).

LEGGI:  #Excel - Come neutralizzare il "tallone d'Achille" della Convalida dati [VBA]

Possiamo a questo punto chiudere l’editor di VBA tornando al nostro file Excel

3 – Creo un pulsante per il salvataggio

Sul nostro foglio di Excel a questo punto inseriamo un pulsante che invierà il comando di salvataggio.

Andiamo sulla scheda SVILUPPO della barra multifunzione e, nel gruppo “Controlli” inseriamo il pulsante

Salva in PDF4

Trasciniamo il mouse su un qualsiasi punto del foglio di lavoro e nella finestra di dialogo che ci si apre selezioniamo la macro che abbiamo appena creato e premiamo il pulsante “OK”

Salva in PDF5

Possiamo a questo punto, se vogliamo, personalizzare il testo che appare sul pulsante premendovi sopra il tasto destro del mouse e cliccando sulla voce “Modifica testo”, indicando ad esempio “Salva in PDF”.

Ed ecco il nostro pulsante pienamente funzionante!!

 

20 luglio 2017
Copyright © 2014-2017  Office Academy. Tutti i diritti riservati.
Vai alla barra degli strumenti