Pesquisar neste blog:

20/04/2020

Dinheiro, data e porcentagem em Mala Direta - Como configurar?


Após fazer mala direta (menu correspondência do Word) é necessário configurar os campos. De maneira resumida, clique com o botão direito no campo e depois em "Alternar códigos de campo". Basta adicionar os códigos a seguir, que estão em vermelho, antes de fechar a chave "}". Depois da adição dos códigos, clique com o botão direito e "Atualizar Campo". Veja os exemplos:

{MERGEFIELD Total \# "R$#.##0,00;-(R$#.##0,00)"}
Para valores positivos R$13,31
Dados na Planilha do Excel: 13,31111
Para valores negativos -(R$21,50) 
Dados na Planilha do Excel: -21,5 

{MERGEFIELD Total \# R$.0,00}
R$0,58 no lugar de 0,57700001
Dados na Planilha do Excel: 0,577.
Não recomendado para valores negativos, pois ficarão R$-0,58.

{MERGEFIELD Data \@"d 'de' MMMM 'de' yyyy"}
10 de fevereiro de 2020 no lugar de 2/10/2020.
Dados na Planilha do Excel: 10/02/2020.

{MERGEFIELD Data \@"dd'/'MM'/' yyyy"}
31/12/2020 no lugar de 12/31/2020.
Dados na Planilha do Excel: 31/12/2020.


Outra configuração interessante é a escrita de números por extenso, mas o recurso é válido apenas para números inteiros até 999.999. Para valores monetários a ideia é criar duas fórmulas no Excel, em colunas separadas, e obter a parte inteira para os reais e os decimais para os centavos. Supondo que o número está na célula "A1" temos a fórmula "=INT(A1)" que retorna o valor inteiro. Já os centavos podem ser extraídos pela fórmula "=INT(100*(A1-INT(A1)))". Assim, teremos o valor dividido em dois campos, "reais" e "centavos", configurados pela seguinte fórmula: 

{MERGEFIELD reais \*cardtext} reais e {MERGEFIELD centavos\*cardtext} centavos.
Mil seiscentos e cinqüenta e Dez centavos no lugar de 1650,10.
Dados na Planilha do Excel: 1650,10.


Se você não quiser dividir em duas partes (reais e centavos), então terá que inserir um campo dentro do outro no Word. Para criar um campo basta teclar "Ctrl+f9" e formará "{}". Tecle novamente e terá um campo dentro do outro"{{}}" (Atenção: se colocar as chaves "{}" manualmente elas não formarão um campo). 


{=INT({MERGEFIELD Total \# .0,00})\*cardtext} reais e {=100*( {MERGEFIELD Total \# .0,00} -INT({MERGEFIELD Total \# .0,00}))\# "0"\*cardtext} centavos.

Dados na Planilha do Excel: 1655,331 
Mil seiscentos e cinqüenta e cinco reais e Trinta e três centavos.

Dados na Planilha do Excel: 0,6660001
Zero reais e Sessenta e sete centavos.

Observe que a parte azul do código corresponde aos valores, da mala direta do excel, formatados com duas casas decimais. A  função INT retorna a parte inteira do número, ou seja, o que está antes da vírgula é exibida como reais. Já os centavos são calculados de maneira semelhante à fórmula apresentada anteriormente "=INT(100*(A1-INT(A1)))" convertida para a linguagem do Word.

Para porcentagem utilizaremos um campo dentro do outro (Ctrl+F9 para adicionar o campo, mas atenção, pois não funciona se colocar as chaves "{}" manualmente).

{={MERGEFIELD porcentagem}*100 \# .0,00%}

Dados da Planilha do Excel: 0,2999999999
30,00%

Finalmente, segue a fórmula para configurar em dólares (até USD 999,999,999.99 ) com "," e "." separando os milhares e decimais, respectivamente. (Atenção todas as chaves "{}" deverão ser geradas com "Crtl+F9")

USD{IF{MERGEFIELD dolar}<{=1000}{=INT({ MERGEFIELD dolar})\#"0"}{IF{MERGEFIELD dolar}<{=1000000}{=INT({MERGEFIELD dolar})\#"0','000"}{=INT({MERGEFIELD dolar})\#"0','000','000"}}}.{=MOD({MERGEFIELD dolar};1)*100 \#00}

Aqui, o valor {=1000} tem que ser um campo para transformar o texto "1000" em número. A função MOD(a;1) retorna o resto da divisão de "a" por "1", ou seja, apenas a parte decimal do número.

Dicas importantes: 
1) Para atualizar os campos você poderá teclar "Ctrl+t" para selecionar tudo e depois F9;
2) Não confunda aspas simples ' com aspas dupla ", pois são caracteres distintos e duas simples não formará uma dupla;
3) Você terá que repetir o procedimento de "Alternar códigos de campo" em campo dentro de outros campos;
4) Digirar "{}" não criará um campo, para criar utilize "Ctrl+F9".

Consideração final: a função TEXTO no Excel transforma um número para texto seguindo uma formatação,  exemplo =TEXTO(A1;"0,00"). Assim, o número que estiver em A1 será formatado para duas casa decimais "0,00" e poderá ser importado no Word como texto, sem a necessidade de alterar ou adicionar a formatação no campo do Word.

Um abraço,

8 comentários:

  1. Excelente material... Muito Obrigado!

    ResponderExcluir
  2. Professor, no seu exemplo o R$ não tem espaço com o zero (R$0,00). Como fazemos darmos um espaço entre o R$ e o 0 para a estética ficar melhor? Ex. R$ 0,00, ou R$ 1,00. Quero aprovaitar para parabeniza-lo pela aula e pela didatica. Parabéns!

    ResponderExcluir
    Respostas
    1. Olá.
      Para adicionar um espaço extra coloque a barra invertida e espaço após o cifrão. Ficará da seguinte maneira:
      {MERGEFIELD valor \#R$\ .0,00}
      Um abraço.

      Excluir
  3. Gustavo, parabéns pelo material. Ajudou muito.

    ResponderExcluir
  4. É possível que o valor não seja arredondado ?

    ResponderExcluir
    Respostas
    1. Olá!!!
      Consegui, mas não é tão simples. (Tem que criar um campo dentro do outro com o Ctrl +F9)
      exemplo:

      {=INT({MERGEFIELD valor})},
      A linha acima será a parte inteira.
      Exemplo 25,49999
      =INT(25,49999),
      = 25,

      Na sequência temos:
      {=INT({=100*{={MERGEFIELD valor} -INT({MERGEFIELD valor})}})}


      No exemplo numérico temos:
      =INT(100*(25,49999 - 25))
      =INT(49,999)
      =49

      Colocando os dois juntos temos:

      {=INT({MERGEFIELD valor})},{=INT({=100*{={MERGEFIELD valor} -INT({MERGEFIELD valor})}})}

      Resultando em 25,49

      Obs: se trocar 100* por 1000* teremos:
      25,499

      Se encontrar uma maneira mais simples favor postar aqui.
      Um abraço.

      Excluir

SIGA-NOS