Acho que seria melhor colocar o código no evento Workbook_Open:
Private Sub Workbook_Open()
Application.EnableCancelKey = xlDisabled
Dim dt As Date
'Escolha a data em a Pasta de Trabalho deverá expirar (ano, mês, dia)
dt = DateSerial(2012, 6, 29)
If Date >= dt Then
MsgBox "Esta Pasta de Trabalho expirou! Favor contatar Fulano."
ThisWorkbook.Close SaveChanges:=False
End If
'Se data não expirou, código continua normalmente.
End Sub
Além disso, desabilitei o uso do Ctrl+Break para o usuário não interromper a rotina.
No entanto, essa solução tem duas fraquezas: o usuário pode abrir a Pasta de Trabalho sem ativar as macros, apagar esse código e usá-la normalmente ou alterar a data do sistema para uma anterior à data estipulada.
*Gosto de escrever datas no formato DateSerial porque essa função retorna a data correta independente do idioma da versão do usuário.
Felipe Costa Gualberto
Microsoft Excel MVP
http://www.ambienteoffice.com.br
Postado : 29/06/2012 6:40 am