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
SISTEMA DE GESTÃO CONTA AZUL
O Excel é uma plataforma de trabalho muito aberta para servir ao gerenciamento de dados de uma empresa, dado a complexidade e a integração entre as diversas áreas que a compõe. Mas é a melhor para analisar suas informações.
Com a intenção de atender as micro e pequenas empresas a Conta Azul criou um software de gestão aonde você tudo o que você precisa para gerir a sua empresa: Estoque, Vendas, Financeiro e ainda emite Nota Fiscal Eletrônica, tudo isso em um sistema simples de trabalhar, que você acessa pela internet, não há a necessidade de comprar servidores e preocupar-se com backup e atendimento através de 0800.
O preço da ferramenta também chama a atenção, sendo um preço mais do que justo para se ter o controle dos dados e a geração de informações para a análise do seu negócio.
O ContaAzul é um software de gestão financeira e fiscal para micro e pequenas empresas. Ele funciona 100% em plataforma web, não necessitando nenhuma instalação ou atualização. Você pode acessar de qualquer lugar e não tem necessidade de comprar nova licença caso troque de computador.
O Guia do Excel recomenda o Conta Azul no gerenciamento de sua empresa.






bom dia ,
Marcos , parabenz meu amigo pelo site(blog) que Deus te abençoe e possa multiplicar seu conhecimento assim como vc tem multiplicado o nosso . entrei hoje no blog e estou impressionado . é muito dificil achar alguém que disposto a compartilhar conhecimento sem cobrar valor .
fique com Deus ,
muito obrigado
boa tarde ,
amigo Marcos , como faço para usar o calendario em form e preencher uma caixa de texto ao clicar no dia desejado.
obrigado
Boa tarde Silvano,
Pra fazer isso você pode mudar o código ActiveCell.Value = MonthView1.Value para TextBox.Text = MonthView1.Value
Private Sub MonthView1_DateDblClick(ByVal DateDblClicked As Date)
TextBox.Text = MonthView1.Value
frmCalendario.Hide
End Sub
Abraço
Marcos Rieper
Bom dia Marcos,
Achei muito boa a idéia. Tenho um formulário onde jogo uma data para vencimento e fiquei muito interessado em fazer com o MonthView, acredito que trará mais interatividade ao usuário. Porem quando arrasto o controle aparece uma mensagem me dizendo que o elemento não foi encontrado. Consegue me ajudar?
Abraço
Marcelo Damascena
Marco,
Quando eu chamo o calendario gostaria que ele viesse sempre aberto no mes atual, como faço isso.
abraço
Marcos, fiz tudo certinho, mas quando acesso o atalho, aparece um erro chamado: “ERRO EM TEMPO DE EXECUÇÃO 424. O OBJETO É OBRIGATÓRIO”. Você pode me ajudar?
Boa tarde Gabrimar,
Pode me enviar por email que eu dou uma olhada. marcos.rieper@gmail.com
At.
Marcos Rieper
Olá! excelente TOPICO ele me ajudou e MUITO !!!
apenas quando fui utilizar o note nao encontrei
Microsoft MonthView Control 6.0
para poder utilizar e continuar desenvolvendo no note…
só posso usar no PC onde tenho instaldo direitinho o arquivo OCX
mscomct2.ocx 647KB SP6 lá no System32 bem tentei de diversas maneiras
mas ele simplismente nao APARECE !!! seleciono a OCX mas nao aparece
alguem já passou esse sufuco pra poder me dar um auxilio …?
quando vou em referencia sendo que Microsoft Windows Common Controls-2 6.0 (SP6)
nao aparece na lista de referencias então vou em procurar e seleciono a OCX mscomct2
fica aparecendo lá como se estivesse tudo certinho logo indo em controles adicionais
verifico que nao tem o MONTHVIEW lá fecho o EXCEL abro ele novamente e
Microsoft Windows Common Controls-2 6.0 (SP6)
não aparece na lista de referencias NOVAMENTE !!!
o negocio ta sinistro !!! h aH ah A nem sei mais de nada !!! h aH ah H A
estou pesquisando e muito e todos os cantos só diz pra colocar lá no Sistem32
que funciona … mas no meu caso não esta sendo tão simples assim nao …
DESDE JÁ AGRADEÇO A ATENÇÃO e desculpe pelo texto imenso … VALEU !!!
OLA !!!! consegui a resposta pra minha questão !!!
como no note é seven tive um flash hehehe, estou mexendo no System32
sem ser o user Administrador ativando referencia tbm … e depois ela some…
vou tentar pelo ADMINISTRADOR a fazer o mesmo entao como é padrao do ADMIN estar OFF
tive que ativa-lo para isso apenas aperte Windows+R digite CMD aperte ENTER
e nesta tela preta digite NET USER ADMINISTRADOR /ACTIVE:YES
o arquivo já estava lá no System32 mscomct2.ocx (647KB que é o SP6)
então abri o Excel apertei ALT+F11 crie um UserForm ou abra o seu…
resumindo pode seguir pelo POST excelente acima dos COMENTARIOS !!
Depois de estar tudo OK tudo funcionando como deveria pode desativar o ADMINISTRADOR
como eu fiz tbm NET USER ADMINISTRADOR /ACTIVE:NO
E VALEU !!!
Olá Marcos,
Achei muito boa sua ideia do calendario, Parabéns, eu estou tentando colocar ele em um formulário que estou criando, mas não estou tendo muito sucesso, será que poderias me enviar seu e-mail para lhe passar o formulário para você me ajudar.
Abraços
Olá, poderia me informar em qual Excel foi criada a VBA? Estou usando o excel 2003 e não encontrei o controle Microsoft MonthView Control 6.0 (SP4).
Obrigada
Marcia
Show de bolaaaaaa
valeu!!!!!!!!
alguem pode mim ajudar ?
instalei o excel 2010 e ai todas as planilhas que eu tenho com calendar1 não funciona mais . dar erro .
Novamente, atendeu a todas as minhas expectativas e necessidades.
Obrigado e parabens pelo otimo site.
abs
Excelente Marcos, porem o meu está dando o mesmo erro que o Gabrimar
“ERRO EM TEMPO DE EXECUÇÃO 424. O OBJETO É OBRIGATÓRIO”
como resolver?
Boa tarde Allan,
Qual a versão do seu Excel?
Abraço
Marcos Rieper
Amigo gostaria de fazer o seguinte filtro:
Gostaria de criar um form que tivesse um calendário para selecionar a “DATA INICIAL” e outro para a “DATA FINAL”, e um botão FILTRAR, com isso, esse botão filtraria os dados baseados nas datas escolhidas nos calendários
como faria isso??
Boa tarde James,
Dê uma olhada neste artigo, talvez possa te ajudar http://guiadoexcel.com.br/painel-contas-a-pagar-com-filtro-avancado-e-vba.
Abraço
Marcos Rieper
Valeu pela dica, mas o meu problema é mais complexo, a saber:
uma célula teria uma cx de listagem com os meses do ano e uma coluna com os dias. Ao se escolher o mês na caixa de listagem (ex.: julho) automaticamente a coluna dos dias mudaria referente a sabado e domingo.
Ex. Em JUNHO tivemos os dias 2 e 3; 9 e 10; 16 e 17; 23 e 24 e 30 como sábado e domingo. No entanto, em JULHO, os sábados e domingos são os dias 7 e 8; 14 e 15; 21 e 22; 28 e 29. Isto para mim é super importante, pois nestes dias a planilha não poderá ser preenchida. Como fazer??
e como faço para usar no oficce 2007? lá não tem esse controle, só o calendario 12.0
Boa tarde Nailson,
Funciona somente no 2007 este componente não tem no 2010, acho que no seu irá funcionar.
Abraço
Marcos Rieper
Existe uma maneira de fazer funcionar no Excel 2010 rodando em Win 7 64 bits? Não achei como incluir o Microsoft MonthView Control 6.0 (SP4)
Boa noite Marta,
Eu também não identifiquei como incluir esta funcionalidade no Windows7 e Office 2010.
Abraço
Marcos Rieper
Olá, utilizo Windows 7 e Office 2007 e consegui seguir essa dica sem problemas.
boa noite.
excelente tópico!
porém, também tive o mesmo problema que outras pessoas mencionaram aqui, aparece a mensagem:
“ERRO EM TEMPO DE EXECUÇÃO 424. O OBJETO É OBRIGATÓRIO”
meu office é o 2010.
pode me ajudar?
obrigado!
Boa noite Luiz,
Infelizmente retiraram da versão do Office 2010 este componente só funcionando até a versão 2007.
Estou fazendo um artigo com um componente que um amigo do site encontrou na internet que supre esta necessidade.
Abraço
Marcos Rieper
[...] componentes é o calendário que era da classe mscal.ocx ao qual foi demonstrado o uso no artigo http://guiadoexcel.com.br/calendario-no-excel-com-vba, aonde era cria do um calendário VBA em um formulário que era chamado de qualquer local na [...]
Erro,
tá dando um erro na minha planilha.
Sub lsCalendario()
FrmCalendario.Show (fica grifado em amarelo)
End Sub
Rapaz, vc não sabe o tamanho do bem que me fez!!!
Fiz e funcionou perfeitamente!!!
Muito Obrigado
PRECISA RENOMEAR O USERFORM PARA FRMCALENDARIO!!!!!!!!!!!!!!!
Em controle adicional não aparece na lista -> Microsoft MonthView Control 6.0 (SP4), o que eu faço???
Muito bom o tópico, parabéns!!
Para o pessoal que está com dificuldades com o office 2010, é possível instalar o controle, PORÉM só no Office 32bits, no Office 64 ele da um erro e não instala.
Espero ter ajudado!!