Quando si lavora con fogli di lavoro di grandi dimensioni, non è insolito aggiungere subtotali in modo da poter raggruppare le informazioni nel foglio di lavoro in modo logico (lo strumento Subtotale si trova nella scheda Dati della barra multifunzione nel gruppo Struttura). Quando si aggiungono subtotali, è possibile specificare che Excel inizi ogni gruppo su una pagina nuova di zecca. Questo è molto utile per tutti i tipi di reporting in Excel.
Se inizi ogni gruppo o sezione del subtotale su una nuova pagina, potresti chiederti se esiste un modo per creare intestazioni personalizzate che vengono stampate in modo diverso per ciascuna sezione, in modo simile a quello che puoi fare con le diverse sezioni in un documento di Word. Sfortunatamente, non c’è modo di farlo in Excel. È tuttavia possibile creare una macro che modifichi iterativamente l’intestazione e stampi ciascun gruppo di un foglio di lavoro. Consideriamo la seguente macro:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Questa macro è un buon inizio per realizzare ciò che desideri. Inizia chiedendoti quante copie desideri stampare di ciascuna sezione, quindi inizia a esaminare ogni riga per vedere se c’è un’interruzione di pagina prima di quella riga.
Il controllo effettivo della riga viene eseguito esaminando la proprietà PageBreak di ogni riga. Questa proprietà è normalmente impostata su xlPageBreakNone, ma quando si utilizza la funzionalità Subtotali di Excel, qualsiasi riga che presenta un’interruzione di pagina prima di essa avrà questa proprietà impostata su xlPageBreakManual. Questa è la stessa impostazione che si verificherebbe se inserisci manualmente le interruzioni di pagina nel tuo foglio di lavoro.
Se la macro rileva che una riga ha un’interruzione di pagina prima, l’intervallo rngSection viene impostato uguale alle righe del gruppo precedente. Inoltre, la struttura Select Case viene utilizzata per impostare le diverse intestazioni utilizzate per le diverse sezioni del foglio di lavoro. Questa intestazione viene quindi posizionata al centro dell’intestazione e viene stampato l’intervallo specificato da rngSection.
Dopo aver scorso tutti i gruppi del foglio di lavoro, viene stampato il gruppo finale (che non termina con un’interruzione di pagina).
Per utilizzare questa macro è sufficiente specificare all’interno della struttura Select Case le diverse intestazioni che desideri per ciascuna sezione del foglio di lavoro. Se lo desideri, puoi anche modificare la posizione dell’intestazione. Tutto quello che devi fare è modificare la proprietà CenterHeader in LeftHeader o RightHeader. Se lo desideri, puoi anche utilizzare LeftFooter, CenterFooter e RightFooter.