Di default, Excel stampa tutti i dati del foglio attivo. Nel caso però volessimo stampare solo una porzione di tali dati, è possibile selezionare le celle coinvolte e, in fase di stampa, indicare ad Excel che vogliamo stampare solo quelle:
![#Excel - Come gestire l'area di stampa [VBA] 2 Selezione stampa](https://www.excelacademy.it/wp-content/uploads/2015/01/Selezione-stampa-310x393.jpg)
Se però vi capita frequentemente di stampare una selezione specifica di un foglio di lavoro, allora forse è consigliabile definire un’area di stampa che comprenda solo la selezione. Un’area di stampa può essere quindi composta da uno o più intervalli di celle e quando si stampa un foglio di lavoro dopo aver definito un’area di stampa, solo l’area di stampa viene stampata.
Vedremo ora come gestire un’area di stampa, come impostarla e come eliminarla.
Come impostare un’area di stampa
Esistono molti modi in cui è possibile impostare un’area di stampa:
Metodo 1 – Usando il comando “Imposta area di stampa”
- Selezionare la celle che si desidera stampare
- Sulla barra multifunzione, selezionare la scheda LAYOUT DI PAGINA
- Nel gruppo “Imposta pagina” cliccare su “Area di stampa” e quindi su “Imposta area di stampa”
Figura 2 – Il comando “Imposta area di stampa”
Metodo 2 – Usando la finestra di dialogo “Imposta pagina”
- Premere in sequenza i tasti Alt, P e I (oppure cliccare sul pulsante di visualizzazione – in basso a destra – del gruppo “Imposta pagina” della scheda LAYOUT DI PAGINA della barra multifunzione)
- Selezionare la scheda “Foglio” della finestra di dialogo “Imposta pagina”
- Scrivere l’intervallo da stampare nella casella “Area di stampa” (oppure cliccare sul pulsante di selezione alla destra della casella “Area di stampa” e selezionare l’intervallo da stampare)
- Confermare l’impostazione premendo il pulsante OK
Figura 3 – Come impostare l’area di stampa tramite la finestra “Imposta pagina”
Al punto 3 è possibile inserire sia un intervallo di celle (ad esempio A1: B13), sia il “nome” che è stato precedentemente assegnato ad un intervallo. Excel consente anche di specificare più parti dello stesso foglio di lavoro. Per farlo, è sufficiente inserire gli intervalli (oppure i “nomi”) separati da virgole, per esempio, B3: F14, B19: F30.
Metodo 3 – Usando del codice VBA
La seguente procedura può essere molto comoda nel caso in cui la cartella di lavoro sia condivisa e non vogliamo che qualcun altro modifichi l’area di stampa. Praticamente faremo in modo che all’atto della stampa Excel riporti automaticamente l’area di stampa secondo le nostre impostazioni.
Prima di procedere occorre salvare il nostro file in modo che possa contenere macro. Nella finestra di dialogo “Salva con nome”, oltre ad inserire un nome a nostra scelta, dall’elenco a discesa “Salva come:” occorrerà selezionare la voce “Cartella di lavoro con attivazione macro di Excel”. A questo punto procediamo come segue:
- Premere la combinazione di tasti Alt+F11 per visualizzare l’editor VBA
- Nella finestra appena apparsa, fare doppio clic sulla voce “Questa_cartella_di_lavoro”
Figura 4 – Gestire l’area di stampa in VBA – Passagio 1 - Nella finestra bianca che si è aperta inserire il seguente codice: [codesyntax lang=”vb”]
Private Sub Workbook_BeforePrint(Cancel As Boolean) Worksheets("Foglio1").PageSetup.PrintArea = "A1:B13" End Sub
[/codesyntax]Avendo chiaramente cura di modificare il nome del foglio e l’intervallo da stampare
A questo punto, qualunque sia l’area di stampa impostata con i primi due metodi che vi ho indicato, al momento di stampare Excel la sostituirà con l’intervallo indicato nel codice.
Come eliminare un’area di stampa
Vediamo ora invece quali sono i metodi principali per eliminare un’area di stampa precedentemente impostata:
Metodo 1 – Usando il comando “Cancella area di stampa”
- Sulla barra multifunzione, selezionare la scheda LAYOUT DI PAGINA
- Nel gruppo “Imposta pagina” cliccare su “Area di stampa” e quindi su “Cancella area di stampa”
Figura 5 – Il comando “Cancella area di stampa”
Metodo 2 – Usando la finestra di dialogo “Imposta pagina”
- Premere in sequenza i tasti Alt, P e I (oppure cliccare sul pulsante di visualizzazione – in basso a destra – del gruppo “Imposta pagina” della scheda LAYOUT DI PAGINA della barra multifunzione)
- Selezionare la scheda “Foglio” della finestra di dialogo “Imposta pagina”
- Cancellare quanto trovate scritto nella casella “Area di stampa”
- Confermare l’impostazione premendo il pulsante OK
Metodo 3 – Usando la finestra di dialogo “Gestione nomi”
- Selezionare la scheda FORMULE della barra multifunzione
- Nel gruppo “Nomi definiti” cliccare su “Gestione nomi”
- Nella lista dei nomi definiti cercarne uno chiamato Area_stampa. Questa è la definizione dell’area di stampa (se non esiste una voce con questo nome, significa che non vi è un’area di stampa definita nella cartella di lavoro)
- Selezionare il nome Area_stampa e cliccare sul pulsante “Elimina”
In alternativa ai punti 1 e 2 è possibile semplicemente premere la combinazione di tasti Ctrl+F3.
Metodo 4 – Usando del codice VBA
Se per impostare l’area di stampa fosse stato usato solo il Metodo 3 del paragrafo relativo, per eliminarla sarebbe sufficiente cancellare il codice presente all’evento BeforePrint dell’oggetto workbook.
Il codice seguente, invece, elimina l’area di stampa da tutti i fogli della cartella di lavoro. Questo è molto comodo nel caso in cui si stia lavorando con una cartella contenente molti fogli di lavoro e si voglia eliminare l’area di stampa da tutti.
Prima di procedere, come al solito, occorrerà salvare il nostro file in modo che sia in grado di contenere macro (Salva con nome > Salva come: Cartella di lavoro con attivazione macro di Excel).
- Premere la combinazione di tasti Alt+F11 per visualizzare l’editor VBA
- 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:
Figura 6 – Come inserire un modulo standard - Nella finestra bianca del nuovo modulo così creato inseriamo il seguente codice:[codesyntax lang=”vb”]
Sub CancellaAreaStampa() Dim ws As Worksheet Dim msg As String Dim curWs As String msg = "Sei sicuro di voler cancellare l'area di stampa da tutti i fogli di lavoro?" If MsgBox(msg, vbYesNo) = vbNo Then Exit Sub Application.ScreenUpdating = False curWs = ActiveSheet.Name For Each ws In ThisWorkbook.Worksheets ws.Activate ActiveSheet.PageSetup.PrintArea = "" Next ws Sheets(curWs).Select Application.ScreenUpdating = True End Sub
[/codesyntax] - Ogniqualvolta si voglia eliminare l’area di stampa da tutti i fogli della cartella di lavoro è sufficiente premere la combinazione di tasti Alt+F8 per aprire la finestra di dialogo “Macro”. Un doppio clic sulla voce “CancellaAreaStampa” sarà tutto il lavoro che dovremo svolgere.
Alcuni punti di attenzione
- Avendo già impostato un’area di stampa, è possibile aggiungere ad essa ulteriori intervalli di celle selezionandole e cliccando sul comando “Aggiungi ad area di stampa” (scheda LAYOUT DI PAGINA > gruppo “Imposta pagina” > Area di stampa)
- Se si desidera stampare il foglio di lavoro e ignorare, solo per questa volta, l’area di stampa impostata, pur lasciandola intatta per le stampe future, è possibile scegliere l’opzione “Ignora area di stampa” dalle impostazioni di stampa
Figura 7 – Come ignorare l’area di stampa solo per la stampa attuale