Calendário no Excel 2010
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, no Excel 2010.
É sabido que no Excel 2010 foram retirados alguns componentes VBA, em boa parte por causa da arquitetura de 64 bits necessária para a sua instalação.
Um destes 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 planilha e ao clicar duas vezes ele colocava estes dados na planilha.
Pois bem, como isto não funciona no Excel 2010 como já disse antes, a leitora Marta Yumi Matsunaga enviou um componente interessantíssimo criado por Krisztina Szabó, Gábor Madács e Roberto Mensa em https://sites.google.com/site/e90e50/calendar-control-class aos quais tiro o chapéu pelo trabalho e agradeço por disponibilizá-lo livremente.
No projeto criado por estes três desenvolvedores foi criado uma classe calendário para ser usada também no Excel 2010, permitindo desta forma fazermos o seu uso da mesma forma como foi demonstrado no artigo anterior que eu havia feito.
Como Utilizar o calendário no Excel
Importando a classe
1. Baixe a classe VBA em: https://sites.google.com/site/e90e50/calendar-control-class clicando sobre a seta para baixo ao final da página em cCalendar.cls.
2. Clique na guia Desenvolvedor e em Visual Basic
3. Clique com o botão direito no projeto PERSONAL (VBAProject (PERSONAL.XLSB))
4. Selecione o arquivo que foi baixado com o nome clCalendar.cls
5. Será adicionada a pasta Módulos de classe se não houver e a classe clCalendar estará dentro dela.
Criando o formulário
1. Clique em Inserir -> Userform nos menus de topo do Visual Basic
2. No formulário criado Insira um frame habilitando a caixa de ferramentas de formulário e adicionando o quadro ao formulário (frame) conforme abaixo
3. Clique com o botão direito sobre o formulário na árvore de projetos e selecione Exibir Código
4. Assim que for exibida a janela de código fonte você deve digitar os seguintes códigos:
Option Explicit 'UserForm with Frame1 Private WithEvents Calendar1 As cCalendar Private Sub Calendar1_DblClick() ActiveCell.Value = Calendar1.Value Unload Me End Sub Private Sub UserForm_Initialize() Set Calendar1 = New cCalendar With Calendar1 .Add_Calendar_into_Frame Me.Frame1 .UseDefaultBackColors = True .DayLength = 3 .MonthLength = mlENShort End With End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Set Calendar1 = Nothing End Sub
6. Estes códigos são necessários para adicionar o formulário assim que ele é iniciado, fechar o componente assim que ele é fechado e ao clicar duas vezes sobre um dia, transportar estes dados para a célula da qual ele foi chamado.
7. A partir deste ponto você já pode clicar em F5 para compilar e exibir a planilha.
Usando o calendário
1. O primeiro passo para utilizar o calendário é inserir um módulo de onde será chamado, para isso clique em Inserir -> Módulo
2. No módulo criado clique duas vezes sobre o mesmo e depois insira o código abaixo que serve para chamar o formulário
Sub lsChamaCalendario() UserForm1.Show End Sub
3. Salve as suas alterações e volte ao ambiente do Microsoft Excel
4. Clique na guia Desenvolvedor e no botão Macros e selecione PERSONAL!lsChamaCalendario, depois clique no botão opções e adicione a chamado ao atalho pelo pressionamento de CTRL+SHIFT+K
5. Após realizar todas estas tarefas você já poderá chamar o calendário de qualquer lugar em qualquer planilha, bastando para isso pressionar CTRL+SHIFT+K e ao selecionar a data e clicar duas vezes o valor da data selecionada será automaticamente adicionado a sua planilha.
Abraço
Marcos Rieper