A propósito do último post sobre criar um ficheiro em formato PDF, surgiu a seguinte questão, que necessitava ser resolvida:
O nome do ficheiro a criar deveria conter a data do dia anterior, mas, se o backup fosse efectuado entre as 00:01 e as 05:00, deveria conter, não a data do dia anterior, mas a data de dois dias antes.
Então, para a sua resolução, foi adicionada a seguinte peça de código:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim SvInput As String
If Time > TimeValue("00:01:00") And Time < TimeValue("05:00:00") Then
SvInput = "D:ExcelTestesPROGR_PR" & "_" & Date – 2 & ".pdf"
Else
SvInput = "D:ExcelTestesPROGR_PR" & "_" & Date – 1 & ".pdf"
End If
With ActiveSheet
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=SvInput, _
OpenAfterPublish:=True
End With
End Sub
Por outro lado, a tabela deveria conter numa das suas células (C3), uma data exactamente com o mesmo critério.
Para tal, foi construída a seguinte fórmula, fórmula essa que apontava para a célula AP1, que apenas continha a Função AGORA():
=SE(E(RESTO(AP1;1)>VALOR.TEMPO("00:01");RESTO(AP1;1)<VALOR.TEMPO("05:00"));HOJE()-2;HOJE()-1)
O resultado foi o esperado!