Calendário em Excel VBA
Calendário em Excel VBA facilita para filtrar uma data em nossos formulários do Excel VBA.
Segue o fonte liberado para estudo nesta planilha de cadastro de clientes onde acrescentamos o calendário em Excel VBA.
Principais dicas para o uso do calendário.
1 Dica – Para exportar um Form para outro projeto vamos para o ambiente VBA pressione com o botão direito em cima do Form desejado opção exportar.
2 Dica – Para importar o Form em um projeto já existente vamos para o ambiente VBA pressione com o botão direito a opção importar e fazer os ajustes no novo projeto.
Agora que você já importou o código fonte para o seu projeto precisamos fazer alguns ajustes.
Vamos aos passos:
1 – Criar um modulo classe por nome cCalendário com a sintaxe abaixo:
Option Explicit
Public WithEvents lblGrupo As MSForms.Label
Private Sub lblGrupo_Click()
lblGrupo.Parent.Tag = lblGrupo.Tag
lblGrupo.Parent.Hide
End Sub
2 – Criar um modulo calendario com a sintaxe abaixo:
Option Explicit
‘Vetor que armazena todos os Label de dia do Calendário
Dim Rótulos() As New cCalendário
Function GetCalendario() As Date
Dim lTotalRótulos As Long
Dim Ctrl As control
Dim frm As FORM_CALENDARIO
Set frm = New FORM_CALENDARIO
‘Atribui cada um dos Label num elemento do vetor da classe
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
‘Se a data escolhida for nula ou inválida, retorna-se a data atual:
If IsDate(frm.Tag) Then
GetCalendario = frm.Tag
Else
GetCalendario = Date
End If
Unload frm
End Function
3 – Agora vamos renomear o botão do calendário para Sub btn_dataINI e colocar a sintaxe abaixo:
Private Sub btn_dataINI_Click()
Me.txt_data = GetCalendario
End Sub
4 – Quando abrir o formulário principal neste exemplo o Form_Cliente e deseja que o campo data já carregue preenchido precisamos colocar no evento inicialize do form principal a sintaxe abaixo:
Private Sub UserForm_Initialize()
txt_data.Value = Date
End Sub
Imagem abaixo como ficou o calendário.
Olá, amigos! Inscreva-se em nosso canal do Youtube para não perder os próximos vídeos.
Funciona com Date Picker?
Olá amigo não funciona.
bom dia!
A sua postagem foi um achado , era exatamente o que eu procurava para resolver o meu problema , muito obrigada!
Mas não consigo baixar o arquivo. poderia disponibilizar novamente?
Olá amiga bom dia tente com outro navegador de internet que vai dar certo o Edge por exemplo.
Olá. Ficou ótimo, porém para estudar o código e muda-lo o projeto está bloqueado no IDE.
Você pode passar a senha por favor?
evaldo.almeidasoares@gmail.com
Obrigado !