Calendário na célula Excel – VBA

6

Calendário na célula Excel – VBA

Neste artigo é demonstrado um calendário na célula Excel que pode ser chamado ao clicar em uma determinada célula do Excel ou ainda através de atalhos ou em outras forms. A vantagem deste formulário sobre os outros é que ele funciona em qualquer versão do Excel (provavelmente), dado que não utiliza componentes que foram descontinuados como o Microsoft Month View e nem utiliza componentes externos.

Além disso o código fonte do calendário é aberto para que sejam realizadas alterações ou para estudar o seu código fonte.

Calendário na célula Excel

Como incluir o calendário na sua pasta de trabalho

Para incluir o calendário na sua pasta de trabalho, de modo que fique utilizável somente nela e possa distribuir a sua planilha sempre com este componente, siga os passos:

  1. Habilite a guia desenvolvedor clicando com o botão direito sobre a faixa de opções do Excel e selecionando a guia Desenvolvedor.Calendário na célula Excel
  2. Na guia Desenvolvedor clique no botão Visual Basic.
  3. Clique com o botão direito sobre a árvore VBA Project referente á sua pasta de trabalho e clique com o botão direito selecionando a opção importar arquivo e selecione o arquivo frmCalendario que está disponível para download ao final do artigo.Calendário na célula Excel
  4. Ainda no VBA clique no menu em Inserir->Módulo e no módulo inserido digite o seguinte procedimento. Ele servirá para chamar o calendário.Calendário na célula Excel
  5. Volte para o Excel fechando o VBE, basta clicar no X no canto superior direito, ele não fechará o Excel.
  6. Na sua pasta de trabalho clique na guia Desenvolvedor e no botão Macros.
  7. Na lista de Macros selecione a macro lsCalendario, clique no botão Opções e em tecla de atalho digite C maiúsculo, fazendo com que o atalho seja CTRL+SHIFT+C.Calendário na célula Excel
  8. Pronto! Agora o calendário já pode ser chamado nesta pasta de trabalho que você incluiu o calendário. Basta selecionar uma célula e clicar em CTRL+SHIFT+C para que o formulário seja chamado, depois navegar para a data desejada e clicar sobre o botão referente ao dia.
Veja também  Planilha de Cadastro de contatos e Agenda Excel

Como chamar o calendário ao dar duplo clique em uma célula

Agora vamos ver como incluir o calendário na célula que será acionado ao clicar duas vezes em uma célula de uma determinada coluna.

  1. Na guia Desenvolvedor clique no botão Visual Basic e clique duas vezes na árvore á esquerda na planilha em que deseja incluir o código.
  2. Selecione Worksheet na primeira combo e na segunda selecione BeforeDoubleClick, o VBE já criará automaticamente a chamada do evento que será chamado antes de realizar um duplo clique na célula.Calendário na célula Excel
  3. Lembrando que para que funcione você deve ter incluído o Módulo e a função lsCalendario, ou ainda se não quiser utilizar a função lsCalendario, pode chamar diretamente frmCalendario.show substituindo este código.
  4. Veja que no caso colocamos Target.Column = 5, este código identifica a coluna aonde foi dado o duplo clique e só chama a lsCalendario se for a coluna 5, ou seja, a coluna E. Se quiser outra coluna basta alterar este número.
  5. Feche o VBE e volte ao Excel, veja que ao dar um duplo clique em uma célula da coluna E o Excel abre o calendário automaticamente.Calendário na célula Excel
Veja também  Dashboard com ordem dinâmica Excel

Como usar o calendário em qualquer planilha no seu computador

Para que o calendário fique disponível no seu Excel, siga os passos seguintes. Lembrando que não irá para o seu cliente, mas funcionará em qualquer planilha que você tenha no seu computador.

  1.  Na guia Desenvolvedor clique no botão Gravar Macro.
  2. Digite no nome da macro lsCalendario, no atalho digite pressione SHIFT+C, ficará CTRL+SHIFT+C, e principalmente em Armazenar macro em: selecione Pasta de trabalho pessoal de macros.Calendário na célula Excel
  3. Clique em Ok e depois na guia Desenvolvedor clique em Parar Gravação.
  4. Abra o VBE clicando na guia Desenvolvedor em Visual Basic ou pressionando ALT+F11 e procure na árvore do VBE por PERSONAL.XLSB, depois clique na pasta Módulos e clique duas vezes em Módulo 1.
  5. Digite o seguinte código:Calendário na célula Excel
  6. Clique com o botão direito sobre a árvore VBA Project referente á sua pasta de trabalho e clique com o botão direito selecionando a opção importar arquivo e selecione o arquivo frmCalendario que está disponível para download ao final do artigo.
  7. Clique em Salvar e Feche o Excel, e salve ao ele pedir para salvar a pasta PERSONAL.
  8. Ao abrir o Excel você já terá o calendário funcionando corretamente para você ao pressionar CTRL+SHIFT+C em qualquer célula de qualquer planilha do seu Excel será chamado o calendário na célula do Excel.
Veja também  Consolidação de dados no Excel

No download eu disponibilizo a form e também um exemplo de uma planilha de controle de cheques muito legal que eu fiz em 2011: http://guiadoexcel.com.br/controle-de-cheques-com-vba/, ele controla a baixa de cheques e também cria uma lista rapidamente para imprimir e juntar aos cheques que serão levados ao banco.Calendário na célula Excel

INSCREVA-SE PARA REALIZAR O DOWNLOAD DOS ARQUIVOS E RECEBER NOVIDADES DO GUIA DO EXCEL POR E-MAIL:

Seu nome (obrigatório)

Seu e-mail (obrigatório)

 

Abraço

Marcos Rieper

6 COMENTÁRIOS

  1. Muito bom
    Conteúdo excelente, bem explicado mas não enrolado e demorado.
    Além de ter os gifs no site caso alguém quer só lembrar algum passo que esqueceu da video-aula.
    Parabéns pelo trabalho e continue 🙂

  2. Marcos,
    parabéns pela iniciativa e abnegação de compartilhar planilhas a nós, aprendizes de VBA. Eu particularmente estou estudando como autodidata e sou um completo iniciante, mas já compreendo algumas sintaxes da programação e as suas planilhas são ótimas e didáticas.
    Espero que você continue nos agraciando com mais modelos para que aprendamos mais.

    Nota 1.000 para você.

  3. Muito obrigado pela dica, amigo.

    Tenho uma planilha de controle financeiro pessoal e estou tentando aprimorá-la, mas de preferência com conhecimentos próprios. Entretanto, existem algumas barreiras que estão me impedindo de deixá-la menos manual. Por exemplo:

    Já consigo fazer exibir resultados em algumas células dependendo do que eu preencha em alguma. Quero usar esse mesmo procedimento para exibição da relação mensal, sem precisar criar 12 gráficos diferentes. Gostaria de apenas um e, ao alternar entre os meses através de uma lista suspensa, o gráfico mudaria de acordo com o mês escolhido.

    Isso me pouparia espaço, tempo e daria um visual muito mais clean. Se puder me iluminar com algum conselho eu ficaria muito grato.

    Como não sei mexer em VBA ainda aderi a este calendário, que diga-se de passagem é incrível.

    Parabéns pelo ótimo trabalho.

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here