Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

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

Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados