Boa tarde,
Depois de muita pesquisa na internet, consegui adaptar um modelo de macro para o meu caso particular:
A macro é a seguinte:
Sub ImprimirVarTH()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
If Trim(ws.Name) <> Trim("Empregador") And _
Trim(ws.Name) <> Trim("Empregados") And _
Trim(ws.Name) <> Trim("Verbas") And _
Trim(ws.Name) <> Trim("TRCT") Then
PlanName = ws.Name
ws.Range("A1:AA53,A103:AA158").PrintOut Copies:=1, Collate:=True
End If
Next ws
Set ws = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Processamento concluído com sucesso.", , "Pronto!"
End Sub
Outra macro semelhante imprime o intervalo: "A1:AA53,A55:AA102".
Teria como, ao invés destas duas macros, deixar apenas uma que imprimisse o intervalo "A1:AA53,A55:AA102", caso o valor da célula Z2 fosse menor que 365, ou que imprimisse o intervalo "A1:AA53,A103:AA158", se o valor fosse maior do que 365.
Tentei colocar mais uma condição If, mas como meu conhecimento de vba é muito limitado, está dando um erro, que falta um for para o next.
Atenciosamente,
Gilberto
Postado : 02/01/2017 2:44 pm