Calendário no Excel com VBA

Objetivo: Criar um calendário que pode ser consultado a qualquer hora no Excel, tal como o calendário do Windows. Sendo que a data selecionada irá para a célula que estiver ativa.

Uma das coisas que eu sentia falta e acho que o amigo que está lendo também, é um calendário que possa ser chamado por um atalho no Excel.

Esta funcionalidade era sempre suprida por mim clicando no calendário do Windows, mas convenhamos que é bastante chato consultar ali.

Neste artigo vamos criar um calendário que pode ser chamado no Excel e colocará a data selecionada pelo duplo click do mouse diretamente na célula selecionada.

Criando o formulário:

  • Clique na guia Desenvolvedor e no botão Visual Basic.
  • Clique em VBAProject(Personal) que é o projeto acessível em qualquer lugar do Excel.

  • Clique em Inserir->User Form, irá ser incluído um formulário no projeto
  • Clique no botão Caixa de Ferramentas

  • Clique com o botão direito sobre o formulário da caixa de ferramentas habilitado pelo botão e clique em Controles Adicionais.
  • Selecione o controle adicional na lista chamado Microsoft MonthView Control 6.0 (SP4)

  • Selecione o componente MonthView que agora está habilitado na sua caixa de ferramentas e arraste para a Form1.

  • Ajuste o formulário arrastando as bordas para ficarem rentes ao calendário.
  • Com o formulário selecionado clique no botão Exibir código e insira o código abaixo:

Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)
   ActiveCell.Value = MonthView1.Value
   frmCalendario.Hide
End Sub
  • O código incluído fará com que o formulário passe a data para a célula quando houver um duplo clique sobre um valor no calendário

Realizando a chamada do formulário;

  • Ainda no VBA, clique em Inserir->Módulo estando selecionado o projeto PERSONAL.XLSB
  • No módulo incluído clique duas vezes e insira o código abaixo:
Sub lsCalendario()
   frmCalendario.Show
End Sub
  • Este código fonte realiza a chamada do calendário
  • Salve e feche o VBA

Realizando a chamada do calendário:

  • Clique na guia Desenvolvedor e no botão Macros
  • Selecione PERSONAL.XLSB!lsCalendario e clique no botão Opções
  • Digite uma tecla de atalho para a chamada deste procedimento, como por exemplo K (SHIFT+K) e feche esta tela
  • Agora pra testar funcionalidade pressione a tecla de atalho definida e clique duas vezes sobre qualquer data, o formulário irá passar esta data para a célula que estiver ativa e fechar automaticamente.

Então é isso, espero que tenham gostado do tutorial e se tiverem algum problema podem entrar em contato com o site ou ver o artigo sobre a habilitação da guia desenvolvedor ou gravar macro no Excel que tratam de assuntos relacionados a este.

Marcos Rieper