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

Cálculos com datas em formulário no Word.

Neste tutorial darei um exemplo de como realizar Cálculos com datas em formulário no Word através da execução de macro.

No exemplo deste tutorial vamos Calcular a Diferença em Dias Entre Duas Datas.


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

Tabela

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

Campos de Texto

O objetivo deste formulário é exibir o número de dias entre a Data Inicial e a Data Final, 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 a Data Final 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: calculandodata

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

Sub calculandodata()
Dim nData As Date' Declara as variáveis.
Dim Texto3
nData = ActiveDocument.FormFields("Texto2").Result
ActiveDocument.FormFields("Texto3").Result = DateDiff("d", Now, nData)
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 o 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.

Propriedades doc 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.

Propriedades do 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

Saída: selecione a macro calculandodata

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.

Propriedades do 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

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:

Restrições de Edição

Digite uma senha para aplicar a proteção.

Aplicar Proteção

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 a Data final e pressione a tecla TAB.

Cálculo com data em formulário no Word

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 nData As Date' Declara as variáveis
Dim Texto3
nData = ActiveDocument.FormFields("Texto2").Result
ActiveDocument.FormFields("Texto3").Result = DateDiff("d", Now, nData)
Trata-Erro: ' Em caso de erro o código seguinte é executado
Exit Sub 'Sai do procedimento
End Sub


Neste tutorial mostramos como calcular a diferença em dias entre duas datas, porém, é possível também calcular a diferença em 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 = DateDiff("M", Now, nData)

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

ActiveDocument.FormFields("Texto3").Result = DateDiff("yyyy", Now, nData)



Veja Também:


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

Formação Pacote Office



eBook Word 2010 VBA

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