Condividere una cartella di lavoro Excel con un gruppo significa anche essere coinvolti con diverse stampanti, diversi PC e diverse esigenze e aspettative degli utenti. Ciò non è mai più evidente quando si tratta di stampare un foglio di lavoro. Ovviamente utenti diversi hanno PC diversi e possono avere stampanti diverse, quindi i risultati stampati possono variare da un utente all’altro. Inoltre, utenti diversi possono modificare gli intervalli di stampa in ciò che viene prodotto da un foglio di lavoro.
Se sei responsabile di un particolare foglio di lavoro, potresti voler proteggere in qualche modo le varie impostazioni di stampa che hai stabilito in modo che non vengano modificate da altri utenti. Forse il modo più semplice per farlo è salvare le impostazioni di stampa in una macro, quindi eseguirla ogni volta che la cartella di lavoro viene chiusa. In questo modo, le impostazioni possono essere riportate ai “predefiniti” specificati, senza preoccuparsi che gli utenti le rovinino tutte.
Ad esempio, la seguente macro mostra come configurare tutte le impostazioni di stampa per un particolare lavoro di stampa:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.708661417322835)
.RightMargin = Application.InchesToPoints(0.708661417322835)
.TopMargin = Application.InchesToPoints(0.748031496062992)
.BottomMargin = Application.InchesToPoints(0.748031496062992)
.HeaderMargin = Application.InchesToPoints(0.31496062992126)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 300
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.FitToPagesWide = 1
.FitToPagesTall = 99
.PrintErrors = xlPrintErrorsDisplayed
.PrintArea = "MiaAreaStampa"
.PrintTitleRows = ""
.PrintTitleColumns = ""
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
End Sub
Questa macro è un gestore eventi e deve essere salvata all’interno dell’oggetto Questa_cartella_di_lavoro nell’editor VBA. Per far sì che la macro funzioni per le tue esigenze particolari, modifica semplicemente le impostazioni per soddisfare qualunque siano le tue esigenze. È inoltre possibile applicare le impostazioni a un foglio di lavoro specifico sostituendo il nome del foglio di lavoro con l’oggetto ActiveSheet. Ecco due esempi:
With Worksheets(1).PageSetup
With Worksheets("Report").PageSetup
Il primo di questi funzionerebbe sul primo foglio di lavoro nella cartella di lavoro, mentre il secondo funzionerebbe sul foglio di lavoro denominato “Report”.
Naturalmente, quando qualcun altro apre la tua cartella di lavoro, la macro potrebbe essere disabilitata automaticamente o l’utente potrebbe vedere una notifica che contiene macro. Se scelgono di disabilitare le macro, la macro con le impostazioni predefinite non verrà eseguita quando la cartella di lavoro viene chiusa. La soluzione, ovviamente, è aprire la cartella di lavoro, abilitare le macro e quindi chiudere la cartella di lavoro. Questo esegue la macro e le tue impostazioni verranno nuovamente ripristinate come desideri.