Tutoriais Word
Home  |  Tutoriais  |  Artigos  |  VBA  |  Download  |  eBooks Word VBA  |  Dicas e Truques  |  Teclas de Atalho  |  Serviços  |  Contato


Categorias

Básico/Intermediário

  Avançado

  VBA

  Tabelas

  Formulário

  Campo

  Livros

  ABNT

  TCC

Personalizando Formulário

Tabela do Word como banco de dados

Cálculo com Datas em Formulário no Word 2007-Parte 2








No tutorial anterior "Calculos com datas em formulário no Word" vimos como calcular a diferença em dias entre duas datas, porém, neste novo tutorial darei mais um exemplo de como realizar Cálculo com Data em Campos de Formulário criando e executando uma macro que irá calcular qual será a data final quando somarmos um determinado número de dias a uma data inicial.





Adicionar Dias a Uma Data para calcular a Data Final.


Primeiramente vamos criar uma tabela com duas linhas e três colunas (Data Inicial, Número de Dias e Data Final), como o da imagem abaixo:


tabela


Adicione três Campos de Texto, um em cada coluna, como mostrado na imagem abaixo:


Campo de texto


O objetivo deste formulário é exibir qual será a Data Final conforme o número de dias informado pelo usuário, sendo que a Data Inicial será sempre a data atual, portanto, mais adiante, iremos alterar as propriedades deste controle para que sempre seja exibida a data atual.


O usuário informará apenas o Número de Dias no Campo de Texto da segunda coluna da tabela e também adicionaremos no evento Saída, deste controle, a macro que ainda iremos criar.


Nosso próximo passo agora é criar a macro que será responsável pela execução do cálculo, portanto, acione a Guia Desenvolvedor e no Grupo Código clique em Visual Basic ou através do atalho ALT + F11.


No ambiente de programação clique no menu Inserir e em seguida clique em Módulo.


Inserir Módulo


Neste novo Módulo criaremos uma macro e daremos a ela o seguinte nome: somandodias


Na Janela de Código, digite as seguintes linhas de código:


Sub somandodias()
Dim sData As Date' Declara as variáveis.
Dim Texto3
sData = ActiveDocument.FormFields("Texto2").Result
ActiveDocument.FormFields("Texto3").Result = DateAdd("d", Now, sData)
End Sub


Veja como ficará na Janela de Código:


Janela de Código


Feito isso, feche o Editor do Visual Basic For Applications (VBA) para retornar ao Microsoft Word.


Fechar Editor do Visual Basic


Agora chegou a hora de alterar as propriedades dos controles, portanto selecione o controle Campo de Texto da primeira coluna da tabela e clique sobre ele com o botão direito do mouse e selecione Propriedades.


Campo de texto


Em Opções do campo de formulário texto faça as seguintes alterações:


Tipo: Data atual


Formato da data: dd/MM/yyyy


Opções do campo de formulário texto


Agora selecione o controle Campo de Texto da segunda coluna da tabela e clique sobre ele com o botão direito do mouse e selecione Propriedades.


Campo de texto


Em Opções do campo de formulário texto faça as seguintes alterações:


Tipo: Número


Formato do número: 0


Saída: selecione a macro somandodias


Selecione também a opção Calcular ao sair


Opções do campo de formulário texto


Agora selecione o controle Campo de Texto da terceira coluna da tabela e clique sobre ele com o botão direito do mouse e selecione Propriedades.


Campo de texto


Em Opções do campo de formulário texto faça as seguintes alterações:


Tipo: Data


Formato da data: dd/MM/yyyy


Opções do campo de formulário texto


Agora é necessário proteger nosso formulário para que possamos utilizá-lo.


Na Guia Desenvolvedor, no Grupo Proteger clique em Proteger Documento.


Proteger documento


Clique em Restringir Formatação e Edição


Restringir Formatação e Edição


No lado direito da tela surgirão as opções de restrição. Em Restrições de edição selecione a opção “Permitir apenas este tipo de edição no documento:”, em seguida no menu DropDown selecione “Preenchendo Formulários”. Em seguida clique no botão Sim, Aplicar Proteção. Observe a imagem abaixo:


Aplicar proteção


Digite uma senha para aplicar a proteção.


Senha


OBS: Proteger o formulário ativa os campos e permite que os usuários o completem. As outras áreas do formulário ficam protegidas de alterações, o que impossibilita que o usuário faça qualquer tipo de modificação.


Para desativar a proteção basta somente clicar no botão Parar Proteção e se você optou por colocar uma senha ela será requerida para desproteger.


Com o formulário protegido você deve navegar pelos campos usando a Tecla Tab.


Tab: avançar para o próximo campo


Shift + Tab: retornar ao campo anterior


Vamos fazer um teste:


Informe o Número de Dias e pressione a tecla TAB.




O controle Campo de Texto da terceira coluna é preenchido automaticamente quando a tecla TAB é pressionada.


OBS: Para que um formulário com macros funcione é necessário que a execução de macro esteja habilitada.


Considerações Finais: para evitar que ocorram erros aconselho a adicionar uma rotina de Tratamento de erros ao código. Por exemplo, se o usuário pressionar a tecla TAB sem informar a Data Final gerará um erro em tempo de execução.


Abaixo o código usado neste exemplo com tratamento de erros:


Sub calculandodata()
On Error GoTo Trata-Erro
Dim sData As Date  ' Declara as variáveis
Dim Texto3
sData = ActiveDocument.FormFields("Texto2").Result
ActiveDocument.FormFields("Texto3").Result = DateAdd("d", Now, sData)
Trata-Erro: ' Em caso de erro o código seguinte é executado
Exit Sub  'Sai do procedimento
End Sub


Neste tutorial mostramos como calcular a adição dias a uma data, porém, é possível também calcular a adição de meses ou anos, basta fazer uma pequena alteração no código.


Para calcular a diferença em mês(es):


ActiveDocument.FormFields("Texto3").Result = DateAdd("M", Now, sData)


Para calcular a diferença em ano(s):


ActiveDocument.FormFields("Texto3").Result = DateAdd("yyyy", Now, sData)











Conteúdo Correspondente:



      



eBook Word 2010 VBA




© 2013 Tutoriais Word - Todos os direitos reservados