Publipostage Gmail Google Sheets : corriger dates et prix
Si votre publipostage Gmail depuis Google Sheets affiche « 46321 » à la place d'une date, ou « 1250 » là où vous attendiez « 1 250,00 € », la solution est la même dans tous les cas : n'envoyez plus la cellule brute, envoyez du texte. Ajoutez une colonne intermédiaire qui convertit la valeur avec la fonction TEXTE(), pointez votre publipostage sur cette colonne, et l'e-mail affichera exactement ce que vous voyez dans la feuille. La suite de cet article explique pourquoi le problème se produit, quelles formules utiliser pour les dates, les montants, les pourcentages et les numéros de référence, et ce qu'il faut vérifier avant de cliquer sur Envoyer.
Pourquoi un publipostage Gmail Google Sheets déforme vos dates et vos prix
Dans Google Sheets, une date n'est pas vraiment le texte « 26 octobre 2026 ». En dessous, c'est un numéro de série (le nombre de jours écoulés depuis le 30 décembre 1899), et la feuille ne l'affiche comme une date que parce que la cellule porte un format de date. Même chose pour l'argent : « 1 250,00 € » est le nombre 1250 avec un format monétaire par-dessus.
Un outil de publipostage lit votre feuille via l'API de Google et, selon l'outil, il peut récupérer la valeur sous-jacente plutôt que le texte affiché. C'est ainsi qu'on se retrouve avec :
46321au lieu d'une date lisible1250au lieu de1 250,00 €0.15au lieu de15 %7au lieu de000007pour un numéro de facture ou d'adhérent2026-10-26T00:00:00.000Zpour les dates dans certains outils
Certains outils lisent la valeur formatée, d'autres la valeur brute, et on ne le sait généralement qu'en regardant un e-mail de test. Plutôt que d'apprendre le comportement de chaque outil, rendez la colonne elle-même en texte brut. Tous les outils afficheront alors la même chose.
Si vous disposez d'un abonnement Google Workspace qui inclut le publipostage intégré de Gmail (le mode « envoi multiple » dans la fenêtre de rédaction), il peut lui aussi aller chercher des colonnes dans une feuille liée, et le même conseil s'applique. Un compte Gmail personnel gratuit n'a pas cette option, c'est pourquoi la plupart des gens passent par l'URL d'une feuille Google Sheets avec un module complémentaire, une extension ou un petit script Apps Script.
Préparer des colonnes à l'épreuve du publipostage avec TEXTE()
La fonction TEXTE() prend une valeur et un motif de format, et renvoie une chaîne de texte. Le résultat n'est plus ni un nombre ni une date, donc aucun outil ne peut le réinterpréter. Gardez vos colonnes d'origine pour trier et filtrer, et ajoutez de nouvelles colonnes à côté pour le publipostage.
Un point pratique avant de commencer : les formules ci-dessous sont écrites pour une feuille configurée en français (Fichier → Paramètres → Paramètres régionaux), où les arguments se séparent par des points-virgules et où les fonctions s'appellent TEXTE, SI, ESPACES, etc. Si votre feuille est en anglais, utilisez TEXT, IF, TRIM avec des virgules. Les codes de format (d, MMMM, yyyy, 0, #) sont les mêmes dans les deux cas.
Les dates
Supposons que votre date d'échéance se trouve en colonne C, avec l'en-tête « Échéance » et la première ligne de données en ligne 2. Dans une nouvelle colonne avec l'en-tête « echeance_texte », saisissez :
=TEXTE(C2;"d MMMM yyyy")
Cela donne 26 octobre 2026. D'autres motifs qui fonctionnent dans Google Sheets :
"dddd d MMMM"→lundi 26 octobre"dd/MM/yyyy"→26/10/2026"d MMM yyyy"→26 oct. 2026"yyyy-MM-dd"→2026-10-26
Attention au MM en majuscules pour le mois. En minuscules, mm signifie minutes, et c'est la raison la plus fréquente pour laquelle une formule de date affiche 00 à la place du mois.
Les montants et la monnaie
Pour un montant en colonne D :
=TEXTE(D2;"#,##0.00 €")
Ce qui produit 1 250,00 €. Remplacez le € par $ ou £ selon le besoin, ou supprimez-le si la devise est écrite en toutes lettres dans l'e-mail. Si vous ne voulez pas de décimales, utilisez "#,##0 €". La partie #,##0 ajoute le séparateur de milliers et garantit qu'un zéro s'affiche en 0 plutôt qu'en chaîne vide.
Le motif s'écrit toujours avec une virgule pour les milliers et un point pour les décimales, quelle que soit la langue de la feuille : Google Sheets applique ensuite les séparateurs de votre paramètre régional (espace pour les milliers et virgule pour les décimales en français). Inutile donc d'écrire "# ##0,00".
Les pourcentages
Une remise stockée en 0,15 :
=TEXTE(E2;"0%")
donne 15%. Utilisez "0.0%" pour une décimale. Si vous tenez à l'espace avant le signe, typographie française oblige, ajoutez-le dans le texte de l'e-mail ou concaténez-le dans la formule.
Les numéros avec zéros en tête
Les numéros de facture, d'adhérent ou de commande perdent leurs zéros de tête dès que Google Sheets les considère comme des nombres. Soit vous formatez la colonne en texte brut avant d'y coller les données (sélectionnez la colonne, puis Format → Nombre → Texte brut), soit vous convertissez à la volée :
=TEXTE(F2;"000000")
Cela transforme 7 en 000007. Les numéros de téléphone posent exactement le même problème : stockez-les en texte brut, sinon ils perdent leur 0 initial et peuvent même s'afficher en notation scientifique.
Recopier la formule et gérer les cellules vides
Tirez la poignée de recopie vers le bas, ou utilisez une formule matricielle dans la ligne d'en-tête pour que les nouvelles lignes soient couvertes automatiquement :
={"echeance_texte"; ARRAYFORMULA(SI(C2:C="";"";TEXTE(C2:C;"d MMMM yyyy")))}
La partie SI(C2:C="";"";...) compte. Sans elle, une cellule de date vide devient 30 décembre 1899 dans l'e-mail, ce qui fait pire que rien. Si une valeur est réellement facultative, une cellule vide convient ; si elle est obligatoire, les vérifications avant envoi décrites plus bas la repéreront.
Les autres colonnes qui semblent correctes dans la feuille mais cassent l'e-mail
Les dates et les montants sont les problèmes les plus visibles, mais quelques autres, plus discrets, provoquent la même réaction : « ce n'est pas ce que j'ai saisi ».
Espaces de fin et caractères invisibles
Les données collées depuis un CRM, un formulaire ou un autre tableur traînent souvent des espaces superflus ou des sauts de ligne. « Bonjour Camille , » avec un espace avant la virgule en est le symptôme classique. Nettoyez la colonne avec :
=ESPACES(EPURAGE(B2))
EPURAGE supprime les caractères non imprimables et ESPACES retire les espaces en début, en fin et en double. Faites-le sur les colonnes nom, société et adresse, pas seulement sur celle où vous avez remarqué le problème.
Un nom complet là où il vous faut un prénom
Si vous n'avez qu'une colonne « Nom », le premier mot suffit généralement pour la formule de politesse :
=INDEX(FRACTIONNER(B2;" ");1)
Surveillez les lignes où le nom est en réalité une société (« Durand SARL ») ou au format « Nom Prénom ». Un tri rapide de la colonne fait ressortir les cas particuliers. Que faire quand le résultat est vide mérite un article à part ; en résumé, prévoyez toujours une valeur de repli neutre pour que personne ne reçoive « Bonjour , ».
Majuscules
=NOMPROPRE(B2) transforme « CAMILLE MARTIN » en « Camille Martin ». Mais il transforme aussi « McDonald » en « Mcdonald » et « iPhone » en « Iphone » : appliquez-le, puis parcourez la colonne au lieu de lui faire une confiance aveugle.
Formules qui pointent vers d'autres feuilles
Si vos colonnes intermédiaires utilisent IMPORTRANGE ou RECHERCHEV vers un autre fichier, l'outil de publipostage peut les lire pendant qu'elles chargent encore, ce qui donne #N/A ou Chargement... dans l'e-mail. Le réflexe sûr consiste à figer les valeurs : sélectionnez les colonnes intermédiaires, copiez, puis Édition → Collage spécial → Valeurs uniquement. Faites-le juste avant l'envoi, une fois les données définitives.
Les vérifications avant envoi : cinq minutes qui évitent un renvoi
Un publipostage est le seul e-mail que vous ne pouvez pas rappeler, alors vérifiez-le de la même manière à chaque fois.
- Faites correspondre exactement les en-têtes et les balises. La plupart des outils s'appuient sur le texte de l'en-tête, donc
echeance_texteetEcheance Textesont deux colonnes différentes. Utilisez des en-têtes courts, sans accents ni ponctuation :echeance_texte,montant_texte,prenom. - Mettez-vous en ligne 2. Placez votre propre adresse dans la première ligne de données avec des valeurs volontairement délicates : un nom long, un montant à quatre chiffres, une date en fin de mois. Envoyez à cette ligne seule, ouvrez l'e-mail sur votre téléphone et sur un ordinateur, et lisez-le comme le ferait le destinataire.
- Filtrez les cellules vides dans les colonnes obligatoires. Sélectionnez la ligne d'en-tête, Données → Créer un filtre, ouvrez le filtre de chaque colonne obligatoire et ne cochez que « (Vides) ». Tout ce qui apparaît a besoin d'une valeur ou d'un repli avant l'envoi. Retirez ensuite le filtre pour qu'aucune ligne ne reste masquée au publipostage.
- Vérifiez le compte. Le nombre de lignes avec une adresse e-mail doit être égal au nombre de messages que vous comptez envoyer. Une ligne d'en-tête copiée par erreur dans les données, ou une adresse dans la mauvaise colonne, se verra ici.
- Cherchez les doublons. Sélectionnez la colonne des adresses, puis Données → Nettoyage des données → Supprimer les doublons. Envoyer deux fois le même e-mail à la même personne est un moyen rapide de perdre sa confiance.
- Figez les résultats des formules (Collage spécial → Valeurs uniquement) si quoi que ce soit dépend d'une autre feuille, comme expliqué plus haut.
- Envoyez d'abord un petit lot. Dix lignes, puis un coup d'œil au dossier Messages envoyés, puis le reste. Si quelque chose est passé entre les mailles, vous avez dix excuses à écrire au lieu de trois cents.
Où un outil comme Zestmail trouve sa place
Tout ce qui précède fonctionne avec n'importe quelle méthode de publipostage, y compris un script Apps Script gratuit que vous écrivez vous-même. Ce qu'un outil dédié apporte, c'est le confort : vous collez l'URL de la feuille au lieu de brancher du code, et vous restez dans la fenêtre de rédaction de Gmail.
Zestmail est une extension Chrome pour Gmail qui propose le publipostage à partir de l'URL d'une feuille Google Sheets, en plus de l'envoi programmé et du suivi d'ouverture, qui indique si et quand chaque destinataire a ouvert le message, en filtrant vos propres ouvertures et les ouvertures de robots courantes. Pour un publipostage qui est en réalité un lot de factures ou de relances, voir lesquelles ont été ouvertes vous dit qui relancer, et les heures d'ouverture vous aident à choisir le créneau d'envoi du lot suivant. Le suivi d'ouverture n'est pas parfait : le blocage des images et les proxys de confidentialité comme la protection de la confidentialité dans Apple Mail peuvent masquer des ouvertures ou les signaler trop tôt, alors prenez-le comme un signal solide plutôt que comme une preuve. Zestmail ne demande pas l'autorisation de lire votre boîte de réception Gmail, même si certaines fonctions envoient le brouillon à son serveur pour fonctionner. À noter : l'extension et le site sont en anglais.
L'offre gratuite couvre jusqu'à 20 e-mails par jour et ajoute un petit pied de page « Sent with Zestmail » à chaque message. L'offre Pro supprime cette limite et coûte 9 $ par mois ou 69 $ par an, avec un essai gratuit de 7 jours ; le détail est sur la page des tarifs. Si votre publipostage est ponctuel et ne concerne qu'une poignée de lignes, l'offre gratuite suffit. Dans tous les cas, construisez d'abord vos colonnes texte : l'outil ne peut envoyer que ce que la feuille lui donne.