fechar

Aprender Excel

APRENDER EXCEL

DICAS E NOVIDADES SOBRE EXCEL

VBA para criar data de validade na planilha no Excel

por: Maximiliano Meyer em VBA, no dia 15/09 | 10:41 atualizado em 19/10 | 08:10

Recentemente vimos várias funções para nossos VBAs que auxiliam na segurança das planilhas e dos nossos projetos. Já vimos por exemplo, como criar um código para excluir a planilha automaticamente após o uso, como proibir o copiar e colar, como bloquear as VBAs com senha, como remover o 'Salvar Como', etc. Até já colocamos uma planilha que se exclui automaticamente para download aqui no site.

E hoje, aprenderemos como criar um documento com data de validade. É tão simples quanto parece e funciona da seguinte forma: Você escolhe uma data, como por exemplo, o último dia do mês. Após esta data o arquivo não será executado. Simples assim, venceu a validade. E mesclando alguns códigos podemos, inclusive, fazer a mesma se excluir sozinha. Confira a partir de agora:

Suponha que você esteja lá, com sua planilha megaimportante, e quer que após término de determinado prazo a mesma fique indisponível. Para começar, como você já sabe, é só apertar o alt + F11 para abrir a edição de códigos.

Detalhe 1: Antes de começar é necessário que seus dados estejam na plan 2 e não na planilha inicial. Por que isso? Como o Excel exibe a tela inicial toda vez que o programa é aberto, se você colocar os dados em uma segunda planilha, a caixa de aviso - que criaremos já já - ficará na primeira tela e os seus dados ficarão seguros na tela 2.

Criamos esta tela de entrada para o documento
Criamos esta tela de entrada para o documento

Detalhe 2: Como as VBAs podem conter códigos maliciosos, o Windows, por segurança, as mantém bloqueadas até que o usuário as habilite. Isso pode ser muito ruim, pois imagine a situação: Você faz uma planilha com a macro de data de validade, afinal, possui dados que não quer que sejam distribuídos por aí, mas, o usuário não ativa as macros, e, com isso, ela pode ser acessado após a data limite. Não serviu de nada a VBA, certo?

Pois bem, clique aqui e veja o código para forçar a execução das macros.

Detalhe 3: Podemos ainda colocar um código para que a planilha se exclua automaticamente após verificar que a data não é validade.

Detalhe 4: Pelo mesmo motivo acima, veja aqui como inserir um código para bloquear o 'copiar e colar' nos seus dados. 

Detalhe 5: Pelos mesmos motivos acima, veja aqui como inserir um código para remover o 'Salvar como'.

Ufa. Acho que agora foi: Sua planilha terá prazo limite, não poderá usar o 'copiar e colar', nem o 'salvar como'. De quebra, ainda forçaremos o usuário a executar as macros para dar tudo certo.

Bem, vamos lá. Voltando a tela de edição de códigos iremos colar o seguinte na janela 'EstaPasta_de_trabalho'

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(2015, 6, 29)
     If Date >= dt Then
     MsgBox "Esta Pasta de Trabalho expirou! Favor contatar o administrador."
  ThisWorkbook.Close SaveChanges:=False
  End If
End Sub

Repare que onde está em vermelho é onde você irá inserir a data limite. Lembrando que o formato da data é o formato americano: ano, mês, dia. Na outra parte em vermelho você colocará a mensagem a ser exibida para o usuário quando a data não for válida.

Veja que no nosso código a planilha está configurada para fechar automaticamente ao verificar que a data não é válida. E mais, se você colocar o código para excluir a planilha automaticamente, a planilha irá ser apagada sem a vontade do usuário.

E o que mais? Bom, o principal já está pronto. 'Só isso?' Sim, só isso =D Agora é só colar os demais códigos (forçar a execução e macros, remover o 'salvar como', etc.) logo abaixo do código que colamos inicialmente. Para isso é só clicar nos links que passamos acima.

Agora clique neste link para baixar a versão pronta e utilizável da planilha com data de validade.