Mis à jour le 21 octobre 2026 · 5 min de lecture
Bonne nouvelle pour les utilisateurs de tableurs : en France, le numéro de TVA intracommunautaire n'est pas une information à aller chercher, c'est un calcul. Il se déduit entièrement du SIREN. Voici la règle, la formule Google Sheets, et le point que tout le monde oublie — un numéro calculé n'est pas forcément un numéro actif.
Le numéro de TVA français s'écrit FR + clé à 2 chiffres + SIREN à 9 chiffres, soit 13 caractères. La clé se calcule ainsi :
clé = (12 + 3 × (SIREN mod 97)) mod 97
Exemple avec Danone, SIREN 552 032 534 : 552032534 mod 97 = 5 ; 12 + 3×5 = 27 ; 27 mod 97 = 27. Numéro de TVA : FR27552032534. Vous pouvez le vérifier sur n'importe quelle facture Danone.
Avec le SIREN en A2 (sous forme de nombre ou de texte, avec ou sans espaces) :
="FR"&TEXTE(MOD(12+3*MOD(VALEUR(SUBSTITUE(A2;" ";""));97);97);"00")&TEXTE(VALEUR(SUBSTITUE(A2;" ";""));"000000000")
Détail des précautions prises :
SUBSTITUE(A2;" ";"") retire les espaces de présentation (« 552 032 534 »).TEXTE(…;"00") force la clé sur deux chiffres : une clé de 7 doit s'écrire « 07 ».TEXTE(…;"000000000") restaure les zéros initiaux du SIREN, que Sheets a tendance à manger quand la cellule est numérique.1. Vous avez un SIRET, pas un SIREN. Le SIRET fait 14 chiffres ; le SIREN, ce sont les 9 premiers. Il faut tronquer avant de calculer : GAUCHE(A2;9). Si vous appliquez la formule au SIRET entier, vous obtenez un numéro qui a l'air plausible et qui est faux.
2. Les zéros initiaux. Un SIREN peut commencer par 0 (rare, mais ça existe pour d'anciens organismes). Stockez vos SIREN en texte, ou utilisez la formule ci-dessus qui les restaure.
3. Un numéro calculé n'est pas un numéro actif. C'est le vrai problème. La formule produit mécaniquement un numéro pour n'importe quel SIREN, y compris celui d'une entreprise radiée il y a dix ans, ou d'un SIREN qui n'a jamais existé. Pour une facture intracommunautaire, l'administration attend que vous ayez vérifié que le numéro est valide au moment de la transaction, pas seulement bien formé.
Deux sources officielles :
MS_MAX_CONCURRENT_REQ).Dans Google Sheets, l'add-on SIRENE pour Sheets fait les deux à la fois :
=SIRENE(A2; "nom;etat;tva")
| A (SIREN ou SIRET) | nom | etat | tva |
|---|---|---|---|
| 552032534 | DANONE | Active | FR27552032534 |
| 356000000 | LA POSTE | Active | FR39356000000 |
Il accepte indifféremment SIREN et SIRET (il tronque lui-même), restaure les zéros, et renvoie l'état administratif à côté du numéro de TVA. Sur une colonne entière : =SIRENE(A2:A500; "tva;etat").
Pour les numéros de TVA d'autres pays de l'UE, où il n'existe pas de calcul et où il faut interroger VIES, le même éditeur propose VAT Checker for Sheets et sa formule =VAT(A2).
Sources : INSEE (base Sirene), Commission européenne (VIES). Les formules sont données à titre indicatif ; vérifiez toujours un numéro de TVA auprès des sources officielles avant de l'utiliser sur une facture.