@Luan Valle Mas iria gastar muita tinta. Vou ver o que posso fazer, aguenta um pouquinho só...
adicionado 28 minutos depois
@Luan Valle Veja só:
Sub Imprimir()
MsgBox "Selecione o número de páginas que deseja imprimir na próxima janela", vbInformation, "Atenção!"
Dim uLin As Long
Dim Area As String
Dim Ref As Double
uLin = Application.WorksheetFunction.Count(ActiveSheet.Range("b4:b100"))
ActiveSheet.Select
Ref = 4 + uLin
If Ref < 28 Then
Area = "A1:N28"
Else
Area = "A1:N" & Ref
End If
ActiveSheet.PageSetup.PrintArea = Area
Application.Dialogs(xlDialogPrintPreview).Show
'ActiveWindow.SelectedSheets.Print copies:=1
MsgBox "Impresso!", vbInformation, "Sucesso"
End Sub
Cole no lugar da Impressão.
PS: Ele seleciona como base a data. Então, ele ira selecionar até a última data preenchida para impressão.
PS2: Nos casos onde há poucos registros, como em agosto, ele iria selecionar até o último preenchimento, fazendo com que as assinaturas não saíssem na impressão, e como a planilha está bloqueada não consegui colocar uma condicional para sair as assinaturas e retirar o excesso de linhas (somente na impressão), nesses casos ele vai priorizar as assinaturas, então mesmo que você queira imprimir apenas 1 registro, ele ira selecionar toda a tabela correspondente até o fim das assinaturas e a data.