per risparmiare risorse e "scattosità" prova a piazzare in cima alla routine la seguente:

codice:
Application.ScreenUpdating = False
che fa in modo di non farti vedere cosa fa il foglio durante la macro (se non sei in fase di sviluppo fa risparmiare risorse)

occhio che la macro Excel diventa moooooolto lenta se lavori con le anteprime di stampa (mi viene in mente, visto che hai nominato le intestazioni e pie di pagina)

noooo, mica ripetere codice identico (non tanto per le risorse, quanto per l'ordine del codice e nel caso ci devi ritornare sopra fra qualche mese), affida gli spezzoni di codice a routine separate, che poi richiami nella sub principale...

ciao