Problème de formats des nombres après publipostage : trop de décimales

Lors du publipostage sur Word à partir d’un tableau Excel, vous pouvez avoir un problème concernant le nombre de décimales des nombres au moment du publipostage.

Exemple : 9,67 est enregistré dans le tableau Excel et pourtant au moment d’utiliser le champ de fusion correspondant le nombre affiché est 9,6699999999999999.

Problème nombre de décimales publipostage Word Excel

Comment régler le problème de formats des nombres après publipostage à partir de nombres d’un tableau Excel ?

Il faut d’abord choisir les champs de publipostage dans Word (les solutions depuis Excel, à voir en fin d’article, ne fonctionnent généralement pas), pour régler le problème.

Problème de formats des nombres lors du publipostage

Pour régler le problème de format des nombres lors du publipostage :

1/ Entrez normalement vos champs de fusion.

2/ Appuyez simultanément sur les touches « Alt » et « F9 ». Cela affiche les codes de champs. Dans mon exemple on a :

{ MERGEFIELD MOYENNE }

3/ À la fin du nom de votre champ, ajoutez \# « #,00 ». Pour l’exemple cela donne :

{ MERGEFIELD MOYENNE \# « #,00 » }

4/ Appuyez à nouveau sur « Alt » et « F9 ».

Le problème du nombre de décimales affichées lors d’un publipostage à partir d’un tableau Excel est alors réglé ! Le fichier affiche uniquement deux décimales pour les champs de fusion concernés.

Si ce n’est pas le cas, faites un clic droit sur le champ de fusion, puis « Mettre à jour ».

Remarque : le nombre de 0 de l’étape 4 correspond au nombre de décimales à afficher après la virgule.

 

Quelques solutions qui ne fonctionnent pas dans la plupart des cas :

  • choisir le format standard dans le tableau Excel pour les cellules concernées.
  • stocker les cellules concernées sous forme de texte.

En effet le « problème » doit être traité depuis Word.

Pourquoi ce problème de formats des nombres après publipostage (problème de nombre flottant) ?

Le nombre de décimales affichés après la virgule est lié à la façon dont sont stockés les nombres.

En effet, les nombres sont souvent stockés sous forme de « flottants » sur un ordinateur (type float ou double). Cet ensemble correspond à un sous ensemble de tous nos nombres.

Ainsi tous les nombres ne peuvent pas être directement représentés (voir ce lien pour plus de détails sur les types de nombres). On pense par exemple stocker 0.4 mais l’ordinateur lui stocke 0.400000005960465…

Stockage des nombres sous forme de flottants

L’astuce consiste de dire à Word d’arrondir ce nombre à deux chiffres après la virgule. On retombe ainsi sur un nombre avec le même affichage qu’au départ.

Commentez pour toute question ou remarque concernant le problème d’affichage du nombre de décimales lors du publipostage !

19 commentaires

  1. Ce format # ###,00 met un espace fixe avant les chiffres, pas joli pour les petits nombres… Y a t-il un format qui annule ces espaces inutiles (le # devrait servir à ça, non) ? Ce n’est pourtant pas ce qui se passe…
    Merci.

  2. Bonjour et merci pour ce coup de main !
    J’ai cependant un petit souci, le chiffre avant la virgule disparait si il s’agit d’un 0.
    Exemple pour 0,25 j’obtiens ,25 le zéro a disparu.
    Et j’ai le même souci qu Pascal Boegli, il y a des espaces en trop.
    Exemple de rubrique « Poids : 1,25 » me donne « Poids : 1,25 »
    Merci

    1. Bonjour,
      de rien et merci pour le commentaire !
      Effectivement pour les espaces je viens de voir le problème, j’ai mis à jour l’article, il faut indiquer : \# « #,00 » à la fin du champ de fusion.
      Pour les 0 c’est un autre problème, le format devrait être de ce type : \# « #0,00 », mais il y aura un espace avant pour tous les nombres commençant par 0.
      Bon courage pour votre fichier !

  3. Bonjour
    J’ai suivi votre procédure, mais ça me met des « Mergefield » sur tout mon publipostage, pas seulement sur le champ que j’avais sélectionné. Du coup ça me bloque tout, je ne peux plus faire d »aperçu.

  4. Bonjour,
    j’ai une question annexe, pas liée au format de nombre.
    L’exemple choisi fait référence à une moyenne. Je souhaite insérer une moyenne dans un publipostage et cette moyenne est identique pour l’ensemble des destinataires (chacun reçoit une note individuelle mais la moyenne est commune). Est-ce qu’il y a une solution plus pertinente que d’ajouter une colonne « moyenne » avec la même valeur pour toutes les lignes/destinataires ? Merci

    1. Bonjour,
      merci pour le commentaire. Si j’ai bien compris il s’agit par exemple d’une moyenne de groupe ou de classe ? Si oui, effectivement on peut soit avoir une colonne identique pour tout le monde, soit entrer directement la valeur sans que ce soit un champ de fusion, puisque la valeur est la même pour tous.
      Bonne journée,
      Jérémy.

      1. Merci de cette réponse rapide. Effectivement.
        J’ai choisi de recopier la valeur directement dans le document Word dans mon cas mais on n’est jamais à l’abri d’une faute de frappe ^^

  5. Bonjour, je suis désolée, mais ça ne fonctionne toujours pas chez moi.
    Apparaît 00 sur tous mes courriers et je ne sais pas pourquoi.
    Pourtant j’ai bien mis \# « #,00 »
    Merci de l’aide

      1. Bonjour Jérémy,
        Merci de ta réactivité.
        Le 00 apparaît à la place du nombre, il n’y a donc aucun pourcentage qui apparaît ensuite sur mes documents publipostés.

        1. De rien, ah oui si c’est un pourcentage effectivement c’est un autre format. Ça doit ressembler à : *100\# « #,00 % »
          Le champ de fusion final :
          {={MERGEFIELD « Moyenne »} *100\# « #,00 % »}

          1. Je ne comprends pas…. ça ne fonctionne toujours pas, j’ai toujours le 00 qui apparaît. Je me dis qu’il y a autre chose qui ne va pas, mais je n’arrive pas à savoir quoi. Mon champs est : { MERGEFIELD M_daugmentation *100\# « #,00 % » }
            Est-ce qu’il y a quelque chose que je ne vois pas?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.