web 2.0


Userform Builtin VBA Calendar (Calendário criado em Userform)

É de conhecimento de todos que desenvolvem que existem dois (ou ate mais)  componentes activex de calendário, o Microsoft Calendar Control e o Month View Activex Control são alguns dos exemplos, para uso em projetos VB/VBA.

Especificamento em projetos VBA, o uso desses controles implica em validações de segurança no uso de componentes externos por parte dos aplicativos Office, como o Excel por exemplo. Isso significa que não há como fugir de algumas caixas de dialogos de aviso (nem mesmo via VBA, e não ha como desativa-las facilmente).

Um exemplo tipicos dessas mensagens é a de que componentes externos estão sendo inicializados pelo Excel;

 

image

Para contornar esse tipo de situação especificamente para o MS Calendar, resolvi criar o meu proprio controle de calendário totalmente em VBA

 

 

Para usa-lo é bem simples:

  1. Crie uma varável do tipo frmCalendar
  2. Exiba o formulário (Show)
  3. Aguarde a data que será clicada.

Segue abaixo um esboço do codigo

 

Instruções de Uso
 
'Uso do Form calendar para retorno da data selecionada
Sub UsoCalendar()
  'Declarar uma variável do tipo frmCalendar
   Dim FC As frmCalendar
   Dim dtData As Date
  'Instancia
   Set FC = New frmCalendar
   'Exibi o form e aguarda o dia selecionado
   FC.Show
   'Devolve a data que foi clicado
   dtData = FC.SelectDate
   'Descarrega o form
   Unload FC
   MsgBox dtData
End Sub

Clique aqui para Baixar o arquivo

Att. Adelson RM Silva

 

Tags: , , , , ,

Microsoft Office | VBA

Os comentários estão fechados