Calendário no Excel com VBA aprenda (Sem complicações)
Se você chegou até aqui, possivelmente deseja criar um incrível Calendário no Excel. No entanto, já lhe adianto que você está no lugar certo, hoje vamos elaborar um calendário inteiramente em VBA, conforme o da imagem.
Aproveitamos também para te adiantar que você nao vai gastar tempo com programação, pois vamos disponibilizar os arquivos (Módulo, Módulo de Classe, Userform), inteiramente para download gratuito.
Antes de iniciarmos, realize o download dos arquivos utilizados, selecionando na imagem abaixo. Depois disso, continue conosco e siga o passo a passo.
Você receberá um arquivo contendo alguns arquivos com alguns nomes simplificados (Conforme abaixo), onde com eles, será possível permitir o funcionamento perfeito do calendário no excel.
Agora que você já tem os arquivos necessários para a inserção de nosso formulário completo, vamos acessar a guia desenvolvedor. No entanto, a partir dele, que vamos importar os arquivos.
Inserindo Formulário em VBA frmCalendário
Primeiramente, vamos em Arquivo -> Importar arquivo (CTRL+M) e faremos a chamada do arquivo frmCalendário.frm, onde então, teremos algo semelhante ao arquivo abaixo.
Percebam que o nosso formulário já veio completo, bacana não? Só aqui temos mais de 1 hora de economia do que criar do zero. Em outras palavras, também aproveito para informar, que toda a programação do formulário já está inserida dentro dele.
Como é possível observar abaixo, ao darmos dois cliques encima de nosso formulário inserido, podemos ver toda a programação em VBA utilizada. No entanto, para o funcionamento correto, ainda precisamos importar os Módulos e Módulos de classe.
Inserindo Módulos do Calendário no Excel
Como inserimos anteriormente, agora vamos realizar a importação do arquivo mdlCalendário que será o nosso módulo utilizado.
Nele teremos o texto contendo a seguinte programação, o qual também já virá inserido, sem a necessidade de inserir manual. Mas, caso deseja inserir manual, estamos disponibilizando abaixo:
Option Explicit
Dim Rótulos() As New cCalendário
Function GetCalendário() As Date
Dim lTotalRótulos As Long
Dim ctrl As Control
Dim frm As frmCalendário
Set frm = New frmCalendário
For Each ctrl In frm.Controls
If ctrl.Name Like "l?c?" Then
lTotalRótulos = lTotalRótulos + 1
ReDim Preserve Rótulos(1 To lTotalRótulos)
Set Rótulos(lTotalRótulos).lblGrupo = ctrl
End If
Next ctrl
frm.Show
If IsDate(frm.Tag) Then
GetCalendário = frm.Tag
Else
GetCalendário = Date
End If
Unload frm
End Function
Se você optou por realizar essa etapa manual, basta inserir o código acima dentro do seu Módulo chamado mdlCalendário. Após isso, seguimos a etapa final, inserindo o Módulo de Classe.
Inserindo Módulo de Classe do Calendário em VBA
Seguindo o mesmo procedimento anteriores, que agora você já está totalmente familiarizado, vamos importar o arquivo de Módulo de Classe chamado cCalendário.cls. No entanto, como fizemos anteriormente, também estamos disponibilizando o código de inserção manual (caso necessário).
Option Explicit
Public WithEvents lblGrupo As MsForms.Label
Private Sub lblGrupo_Click()
lblGrupo.Parent.Tag = lblGrupo.Tag
lblGrupo.Parent.Hide
End Sub
Lembrando que todos esses arquivos foram disponibilizados para download gratuito no início desse artigo. Depois disso, após tudo estar importado nos locais corretos, você provavelmente tenha se deparado com os seguintes arquivos.
Conclusão
Feito isso, vamos realizar o teste de como ficou nosso calendário inteiramente criado em VBA? Para isso, vamos em frmCalendário e vamos processar ele através do F5 de nosso teclado.
No entanto ao final sua imagem ficou semelhante a de cima, seu calendário está funcionando perfeitamente. Depois disso é só você fazer a chamada dele utilizando frmCalendário.Show em qualquer botão de chamada em VBA que você inserir em seu trabalho.
Mas se você gostou desse artigo, e deseja receber conteúdos gratuitos com preferência, inscreva-se em nosso canal no Youtube. Você encontrará grandes passo a passos assim como esse.