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;
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,
Excelente material... Muito Obrigado!
ResponderExcluirObrigado pelo retorno.
ExcluirUm abraço.
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!
ResponderExcluirOlá.
ExcluirPara 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.
Gustavo, parabéns pelo material. Ajudou muito.
ResponderExcluirObrigado pelo retorno. Um abraço.
ExcluirÉ possível que o valor não seja arredondado ?
ResponderExcluirOlá!!!
ExcluirConsegui, 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.