viniciussn,
Boa tarde!
Estive dando uma rápida olhada aqui e observei um detalhe:
Com a inserção dessas 20 linhas extra que você fez (valores em vermelho) e rodando o código passo a passo com F8 (depurando) a planilha fica com 54 páginas. Todavia, quando chega na última iteração (no código feito por você), simplesmente o VBA não faz a última iteração. Ou seja: não atende a essa linha de comando:
For i = 1 To ActiveSheet.HPageBreaks.Count + 1
Verifiquei o valor de ActiveSheet.HPageBreaks.Count e ele mostra corretamente (54). Todavia, como é mais 1, deveria iterar o laço mais uma vez para poder atender a condição que coloquei de quando i for igual a ActiveSheet.HPageBreaks.Count ele poder acrescentar mais duas linhas, o subtotal e o total.
Nunca trabalhei com quebras de páginas e, por isso, nem sei como faz isso. Pelo que entendi, o Excel não está considerando uma quebra de página entre a página 53 e a 54. Se você observar a linha divisória entre a página 52 e a 53 (no arquivo que me enviou por último) vai ver que é uma linha pontilhada. Se observar a linha divisória entre a página 53 e 54 vai ver que é uma linha contínua. Isso eu não sei dizer porque. O fato é que indica que o Excel não está computando essa divisão como uma quebra de página.
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
Postado : 26/06/2017 1:22 pm