Factures depuis Google SheetsDéveloppement et personnalisation

Un Google Apps Script qui transforme les lignes de votre feuille Google Sheets en factures PDF sur votre modèle, d’un clic

Généralement prêt en 15 minutesRetouches inclusesContrôle qualité
Formules
Paiement protégéEn savoir plus
  • Les retouches prévues par la formule sont gratuites.
  • Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.

L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Un Google Apps Script qui transforme les lignes de votre feuille Google Sheets en factures PDF sur votre modèle, d’un clic

Exemple de résultat

Exemple pour la formule Standard

Fusion des fichiers de ventes mensuels de 9 boutiques en un seul rapport Excel

Comment on le lance

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Dossier : sales/2026-10, 9 fichiers trouvés
2026-11-02 09:14:03 INFO  shop-01.csv : 1 284 lignes
2026-11-02 09:14:04 INFO  shop-02.xlsx : 967 lignes
2026-11-02 09:14:04 WARN  shop-07.csv : 3 lignes sans prix ignorées (lignes 88, 412, 913)
2026-11-02 09:14:05 INFO  Terminé : 10 412 lignes -> report-2026-10.xlsx (feuilles « Ventes » et « Totaux »)

Des paramètres, pas du code

Les noms de colonnes de chaque boutique se trouvent dans settings.ini : une nouvelle boutique ou une colonne renommée, c’est une ligne à modifier :

[columns]
date = Date, Date de vente, Jour
product = Produit, Article, Désignation
quantity = Qté, Quantité, Pièces
price = Prix, Prix unitaire

Un extrait du code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lit le fichier d’une boutique et lui donne les noms de colonnes du rapport."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name} : aucune colonne pour '{name}' (recherché : {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Fichiers : une archive ZIP avec merge_sales.py (310 lignes), settings.ini, requirements.txt et un README qui explique comment installer Python, lancer le script et ce que signifie chaque message du journal. Le client le lance sur son propre ordinateur.

Client : une petite chaîne de 9 papeteries ; chaque boutique envoie ses ventes du mois en fichier CSV ou Excel, avec des noms de colonnes légèrement différents. Tâche : un seul script qui lit chaque fichier d’un dossier, met les colonnes au même format et écrit un rapport Excel unique avec toutes les ventes et une feuille de totaux par boutique.

Le client et tous les détails sont fictifs.

À propos de ce service

Si vous suivez vos commandes ou vos heures de travail dans une feuille Google Sheets, faire chaque facture à la main oblige à recopier le client, les articles et les totaux dans un document et à enregistrer un PDF. Ce Google Apps Script ajoute un bouton à votre feuille : il remplit votre propre modèle de facture dans Google Docs ou Sheets avec les données de la ligne, enregistre un PDF nommé comme vous le voulez dans un dossier Drive et remet le lien dans la ligne. Dès Standard, il gère plusieurs lignes d’articles et la numérotation ; Premium peut envoyer chaque PDF à votre client depuis votre Gmail. Totaux, taxes et formulations viennent de votre feuille et de votre modèle : le script fait les calculs que vous décrivez et ne donne aucun conseil fiscal ou comptable, vérifiez donc les premières factures. Vous l’installez et le lancez dans votre compte Google.

Ce qui est inclus

  • Ce que vous recevezUne archive ZIP avec le code Apps Script et un README qui montre comment l’ajouter à votre feuille et à votre modèle ; le code est aussi affiché sur la page de la commande.
  • Votre propre modèleVotre mise en page, votre logo et vos formulations dans Google Docs ou Sheets
  • PDF dans DriveNommé par numéro, client et date, dans le dossier que vous indiquez
  • Lien dans la ligneVous voyez quelles lignes ont déjà une facture
  • NumérotationDès Standard, le numéro suivant tiré de votre feuille
  • Code lisibleAvec des commentaires, pour modifier facilement un champ plus tard

Comment ça marche

  1. 1
    ModèleVous envoyez les colonnes de la feuille et votre modèle de facture
  2. 2
    CodeNous écrivons le script et le guide d’installation
  3. 3
    Testez-leVous créez des factures de test dans une copie de la feuille et vérifiez les calculs
  4. 4
    RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur

Ce dont nous avons besoin

Les noms de colonnes de votre feuille avec deux ou trois lignes de données fictives, votre modèle de facture (un Google Doc ou Sheet, ou le PDF d’une facture que vous envoyez aujourd’hui) avec l’emplacement de chaque valeur, et le mode de calcul des totaux : taux de TVA, remises, devise et arrondis, selon les indications de votre comptable. La numérotation et le nom des factures, le dossier Drive des PDF et, pour Premium, le texte de l’e-mail au client.

Nous vous demanderons :

  • Que facturez-vous ?
  • Quelles sont les colonnes de la feuille ?
  • À quoi ressemble votre facture ?
  • Comment les totaux sont-ils calculés ?

Comparer les formules

FormulesEssentielUne facture à la fois15 €StandardFactures avec paramètres30 €PremiumOutil de facturation60 €
Délai1 jour2 jours3 jours
Retouches123
Codejusqu’à 150 lignesjusqu’à 400 lignesjusqu’à 1 000 lignes
Fichiers de code1jusqu’à 3jusqu’à 8
Fichier de paramètresNonOuiOui
Messages d’erreur clairs et journalNonOuiOui
Options de lancement et guide pour l’exécution planifiéeNonNonOui
Guide d’installation et d’utilisation (README)OuiOuiOui
LangageGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
Commander EssentielCommander StandardCommander Premium

Paiement protégé

Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.

  • Prix fixeLe prix de la formule ne change pas après le paiement.
  • L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
  • Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
  • Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
  • Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
  • Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Comment ça marche →

Questions et réponses

Les factures seront-elles conformes à la loi ?

Le script remplit ce que contiennent votre modèle et votre feuille et calcule comme vous le décrivez. Les mentions obligatoires d’une facture dans votre pays relèvent de vous ou de votre comptable ; nous ne donnons pas de conseil fiscal ou juridique.

Peut-il envoyer les factures par e-mail ?

En Premium, oui : depuis votre propre Gmail vers l’adresse de la ligne, dans la limite d’envoi quotidienne fixée par Google pour votre compte. Vous pouvez désactiver l’envoi et seulement enregistrer les PDF.

Peut-il encaisser des paiements ou se relier à mon logiciel de comptabilité ?

Non, il produit des PDF. Un lien de paiement que vous avez déjà peut être imprimé sur la facture comme texte issu de votre feuille.

Aurez-vous accès à mon Drive ?

Non. Vous ajoutez le code à votre propre feuille et l’autorisez vous-même. Nous ne nous connectons jamais à votre compte Google.

Vous n’avez pas trouvé la réponse ?

Formules