Une liste de prix dans Google Sheets, c’est une feuille à cinq colonnes : référence, nom, prix d’achat, prix de vente et stock. Une formule calcule le prix de vente à partir du cours et de la marge, les tarifs des fournisseurs arrivent par IMPORTRANGE ou IMPORTDATA, un court script Apps Script inscrit chaque jour le cours de référence de la BCE, et si votre boutique ou une application doit modifier les prix, vous passez par l’API Google Sheets. Cela suffit jusqu’à quelques milliers d’articles et une poignée de fournisseurs.
Les erreurs viennent surtout de l’accès et de la taille. Le fichier de travail, partagé par lien avec les clients, leur montre les prix d’achat sur la feuille voisine, et les fonctions d’import ne se mettent pas à jour instantanément et butent sur les limites de Google. Ci-dessous : la structure, la formule sur un exemple, le branchement des fournisseurs, l’accès client, l’automatisation par script et par API, et le moment où un tableur ne suffit plus.
Quand on cherche à tenir sa liste de prix dans Google Sheets
En général, c’est une petite boutique ou un grossiste dont la liste de prix vit dans Excel sur un seul ordinateur. Les commerciaux doivent voir les prix à jour, les clients ouvrir le tarif par un lien, et les cours comme les prix fournisseurs doivent se mettre à jour seuls. D’où les recherches « google sheets api », « importrange » et « lier deux fichiers Google Sheets ».
« Quelle formule mettre » se règle en dix minutes. Les vraies questions sont ailleurs : comment ne pas montrer les prix d’achat aux clients, et que se passe-t-il quand le fournisseur déplace ses colonnes ?
Quelles colonnes mettre dans une liste de prix
Le minimum, ce sont cinq colonnes. Le cours et la marge sont dans des cellules à part, pour les modifier à un seul endroit.

| Colonne | Contenu | Source |
|---|---|---|
| A – Réf. | référence pour la recherche et le rapprochement des tarifs | fournisseur |
| B – Nom | votre nom de produit pour les clients | vous |
| C – Achat $ | prix du fournisseur dans la devise de son tarif | fournisseur |
| D – Prix € | prix de vente, uniquement par formule | formule |
| E – Stock | « en stock », « sur commande », « indisponible », choisis dans une liste déroulante | fournisseur |
| H1, H2 | cours et marge | script et vous |
Créez la colonne « Stock » en liste déroulante (Données → Validation des données). Ainsi, « oui », « + » et « dispo » ne se mélangent pas et les filtres fonctionnent.
Comment calculer le prix de vente par formule
Prix de vente = achat ÷ cours × (1 + marge), arrondi au-dessus avec une terminaison en ,99. En H1 se trouve le cours de référence de la BCE, exprimé en dollars pour un euro, en H2 le taux de marge. Dans la version française de Google Sheets, la fonction d’arrondi supérieur s’appelle ARRONDI.SUP (en anglais ROUNDUP) ; avec les paramètres régionaux France, les arguments sont séparés par un point-virgule et les décimales par une virgule. En D2 :
=ARRONDI.SUP(C2/$H$1*(1+$H$2)+0,01;0)-0,01
Exemple pour l’arithmétique, ce ne sont pas des prix de marché. Le fournisseur demande 22 $, le cours en H1 est de 1,10 dollar pour un euro, la marge en H2 est de 25 %.
- 22 ÷ 1,10 = 20,00 € : l’achat en euros ;
- 20,00 × 1,25 = 25,00 € : avec la marge ;
- 25,00 + 0,01 = 25,01 → arrondi supérieur à 26 → 26 − 0,01 = 25,99 €.

Le +0,01 évite qu’un prix rond comme 25,00 € tombe à 24,99 €, sous votre marge. Si la marge dépend de la catégorie, ajoutez une colonne « Marge » et utilisez-la dans la formule à la place de $H$2. Quelle marge couvre la livraison et les commissions : voir l’article taux de marque : formule, coefficient et exemple ; vérifiez votre marge avec le calculateur de marge.
Comment importer le tarif du fournisseur dans votre fichier
Cela dépend de la façon dont le fournisseur l’envoie : fichier Google Sheets, IMPORTRANGE ; lien vers un fichier CSV, IMPORTDATA ; flux XML, IMPORTXML. Ces fonctions portent le même nom en français qu’en anglais.

| Tarif du fournisseur | Fonction | À surveiller |
|---|---|---|
| Fichier Google Sheets | =IMPORTRANGE("lien";"Prix!A2:E") | cliquer une fois sur « Autoriser l’accès » ; 10 Mo de données au maximum par requête |
| Lien vers un fichier CSV ou TSV | =IMPORTDATA("lien") | ne fonctionne qu’avec un lien direct vers le fichier |
| Flux XML | =IMPORTXML("lien";"//item/price") | le second argument est une requête XPath vers les nœuds voulus |
L’import récupère une plage par son adresse, pas par le nom des colonnes. Si le fournisseur insère une colonne « Marque » entre la référence et le prix, votre colonne « Achat » se remplit de noms de marques, et la formule de prix renvoie sans bruit une erreur ou un chiffre absurde. Gardez l’import sur une feuille à part et vérifiez les en-têtes après chaque changement de tarif.
Comment donner l’accès à la liste de prix aux clients
Donnez aux clients un fichier à part, pas le fichier de travail. « Tous les utilisateurs disposant du lien → Lecteur » ouvre tout le classeur, y compris la feuille des prix d’achat.
- Créez le fichier « Tarif clients » et importez-y depuis le fichier de travail, par IMPORTRANGE, uniquement la référence, le nom, le prix et le stock.
- Partager → « Tous les utilisateurs disposant du lien » → « Lecteur ».
- Ou Fichier → Partager → « Publier sur le Web » : la version publiée reprend automatiquement les modifications de l’original ; selon Google, cela peut prendre quelques minutes.
Pour des groupes de clients différents, par exemple grossistes et particuliers, faites des fichiers distincts avec leurs propres colonnes de prix : les liens circulent.
Comment mettre à jour le cours et les prix automatiquement
Le cours de référence de la BCE s’inscrit par un script Apps Script déclenché à heure fixe. La Banque centrale européenne le publie chaque jour ouvrable vers 16 h (heure d’Europe centrale) : les prix ne bougent donc pas en cours de journée comme avec un cours de marché tiré de GOOGLEFINANCE. Ouvrez Extensions → Apps Script et collez la fonction :
function majCours() {
var url = 'https://data-api.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?lastNObservations=1&format=csvdata';
var lignes = Utilities.parseCsv(UrlFetchApp.fetch(url).getContentText());
var cours = lignes[1][lignes[0].indexOf('OBS_VALUE')];
SpreadsheetApp.getActive().getSheetByName('Tarif')
.getRange('H1').setValue(Number(cours));
}
Ensuite, dans l’éditeur de script : Déclencheurs → Ajouter un déclencheur → fonction majCours → déclencheur horaire → minuteur quotidien → entre 17 h et 18 h. Les déclencheurs horaires vont d’une fois par minute à une fois par mois ; Google choisit l’heure exacte à l’intérieur de l’heure retenue. Pour la livre ou le franc suisse, remplacez USD par GBP ou CHF dans le lien. La BCE publie ces cours à titre d’information uniquement : si votre contrat avec le fournisseur prévoit un autre cours, utilisez celui-là.
Un script peut aussi aller chercher chaque nuit le tarif du fournisseur par son lien et l’écrire sur une feuille. Le tableur reste alors le seul endroit où vous calculez les prix, mais il ne se met à jour qu’aussi souvent que le permettent les limites du tableau ci-dessous.
API Google Sheets : quand elle sert et comment démarrer
L’API Google Sheets est l’interface par laquelle votre programme (boutique, application, script Python sur un serveur) lit et écrit les cellules d’un classeur sans l’ouvrir dans le navigateur. Elle sert quand les prix doivent circuler entre le tableur et un système hors de Google ; si tout se passe dans le classeur lui-même, Apps Script suffit.
- Créez un projet dans Google Cloud et activez-y l’API Google Sheets.
- Choisissez les identifiants. Une clé API ne donne qu’un accès anonyme à des données publiques. Un ID client OAuth sert quand le programme agit au nom d’une personne et lui demande son consentement. Un compte de service, quand le programme tourne seul, par exemple sur le serveur de la boutique.
- Partagez le classeur avec l’adresse e-mail du compte de service comme avec un utilisateur ordinaire : les rôles Google Cloud ne donnent pas accès aux fichiers de Google Drive.
- Installez la bibliothèque cliente Google de votre langage (pour Python, Google indique le paquet
google-api-python-client) et lisez une plage, par exempleTarif!A2:E.
L’utilisation normale de l’API Google Sheets est gratuite. Les limites : 300 requêtes de lecture et 300 d’écriture par minute et par projet, et 60 par minute et par utilisateur du projet. Google annonce que le dépassement des quotas doit être facturé sur le compte de facturation Google Cloud dans le courant de 2026. Une requête qui dure plus de 180 secondes s’arrête sur une erreur, et Google conseille des charges utiles de 2 Mo au maximum : écrivez donc la liste de prix par lots (une requête par plage), pas cellule par cellule.
Où un tableur atteint ses limites
Le tableur bute sur la fréquence de mise à jour, pas sur le nombre de lignes : les fonctions d’import se rafraîchissent toutes les 30 à 60 minutes, et les scripts ont une limite quotidienne de temps d’exécution.

| Quoi | Limite |
|---|---|
| Taille du classeur | jusqu’à 20 millions de cellules ou 100 Mo |
| IMPORTRANGE | 10 Mo de données par requête ; mise à jour toutes les 30 minutes |
| IMPORTDATA, IMPORTXML, IMPORTHTML | mise à jour toutes les heures |
| GOOGLEFINANCE | différé de 20 minutes au maximum |
| Exécution d’Apps Script | jusqu’à 6 minutes par exécution |
| Déclencheurs, compte Gmail personnel | jusqu’à 90 minutes d’exécution par jour |
| Appels UrlFetchApp, compte Gmail personnel | jusqu’à 20 000 par jour |
| API Google Sheets | 300 requêtes de lecture et 300 d’écriture par minute et par projet, 60 par utilisateur |
Les signes pratiques que le tableur ne suit plus :
- vous avez plus de trois ou quatre fournisseurs, chacun avec ses colonnes, sa devise et ses libellés de stock ;
- le même produit figure dans plusieurs tarifs, et vous choisissez le prix à la main ;
- les prix de la boutique doivent changer plus d’une fois par heure ;
- quelqu’un passe des heures chaque semaine à réparer les formules après un changement de tarif.
Quand confier les tarifs fournisseurs à un logiciel
Quand vous avez plusieurs fournisseurs et que leurs prix doivent arriver dans la boutique sans que personne ne vérifie les formules à la main.
Elbuz récupère le tarif du fournisseur directement depuis un fichier Google Sheets par son lien, y compris un fichier privé que le fournisseur a partagé avec l’adresse e-mail de service d’Elbuz, mais aussi depuis un e-mail, un FTP ou un site, à heure fixe. Il reconnaît les colonnes à leurs en-têtes grâce à son dictionnaire ; si le fournisseur déplace ses colonnes, il prévient lors de l’import et propose les nouvelles adresses en un clic. Le cours (y compris le cours de référence de la BCE), la marge et l’arrondi se fixent par règle. Plus de détails sur la page automatisation des listes de prix fournisseurs.
Pour qui c’est inutile : avec un seul fournisseur et quelques centaines d’articles, Google Sheets avec une formule et un script de cours suffit.
Tarifs Google Sheets dans ElbuzColonnes, cours et marge par règle, 14 jours gratuits
Questions fréquentes
L’API Google Sheets est-elle gratuite ?
Oui, l’utilisation normale est gratuite dans la limite de 300 requêtes par minute et par projet et de 60 par utilisateur. Google annonce une facturation des dépassements de quotas dans le courant de 2026.
Comment obtenir l’accès à l’API Google Sheets ?
Activez l’API Google Sheets dans un projet Google Cloud, créez des identifiants (OAuth ou compte de service) et, avec un compte de service, partagez le classeur avec son adresse e-mail. Les étapes sont dans la section API Google Sheets.
Comment importer les données d’une API dans Google Sheets ?
Sans code, avec IMPORTDATA (CSV) ou IMPORTXML (XML), si l’API renvoie un fichier à un lien fixe. Pour du JSON ou un accès par clé, utilisez Apps Script avec UrlFetchApp, comme dans le script du cours BCE.
Comment lier deux fichiers Google Sheets ?
Avec IMPORTRANGE : indiquez le lien du classeur et une plage, par exemple "Prix!A2:E", puis cliquez sur « Autoriser l’accès » la première fois.
À quelle fréquence IMPORTRANGE et IMPORTXML se mettent-elles à jour ?
Selon l’aide Google, IMPORTRANGE toutes les 30 minutes, IMPORTDATA, IMPORTXML et IMPORTHTML toutes les heures. Plus vite, ce n’est possible que par script ou par programme.
Comment partager une liste de prix en lecture seule avec des clients ?
Faites un fichier à part pour les clients, sans prix d’achat, et partagez-le en « Tous les utilisateurs disposant du lien → Lecteur » ou publiez-le par Fichier → Partager → « Publier sur le Web ».
Combien de données tient un classeur Google Sheets ?
Jusqu’à 20 millions de cellules ou 100 Mo par classeur. Pour une liste de prix, les limites de mise à jour des imports et de durée des scripts comptent davantage.
Sources
- Aide Éditeurs Google Docs : IMPORTRANGE, IMPORTDATA, IMPORTXML, ARRONDI.SUP (ROUNDUP), paramètres régionaux et de calcul (fréquence des imports), publier sur le Web, taille des fichiers dans Google Drive.
- Google for Developers : limites et tarification de l’API Google Sheets, démarrage rapide Python, créer des identifiants, quotas d’Apps Script, déclencheurs horaires.
- Banque centrale européenne : taux de change de référence de l’euro (publication vers 16 h CET les jours ouvrables, à titre d’information uniquement), API du ECB Data Portal.
Vérifié le 02.11.2026.
