DéveloppementPaiement 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é.

Exemple de résultat
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
Sur un projet, certains travaillent dans Airtable, d’autres uniquement dans Google Sheets, et recopier les enregistrements de l’un à l’autre finit toujours par déraper. Ce Google Apps Script lit votre base Airtable via son API officielle avec votre propre jeton d’accès personnel et écrit les enregistrements choisis dans une feuille : une table ou une vue, les champs voulus en colonnes. Dès Standard, il garde l’identifiant de l’enregistrement dans chaque ligne, pour qu’un second lancement mette les lignes à jour au lieu de les dupliquer, et affiche les enregistrements liés par leur nom. Premium renvoie les modifications de la feuille vers Airtable selon la règle que vous fixez pour le côté prioritaire. Votre jeton va dans les propriétés du script, que vous remplissez, jamais dans le code. Il tourne au rythme permis par l’API d’Airtable ; les pièces jointes arrivent sous forme de liens.
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, saisir votre jeton et le lancer ; le code est aussi affiché sur la page de la commande.
- API officielleLa Web API d’Airtable avec votre jeton
- Champs au choixUne table ou une vue, uniquement les champs voulus
- Aucun doublonDès Standard, lignes associées par identifiant d’enregistrement
- Jeton hors du codeVous le saisissez dans les propriétés du script
- Code lisibleAvec des commentaires, pour ajouter facilement un champ plus tard
Comment ça marche
- 1TâcheVous décrivez la base, les tables et le sens de synchronisation
- 2CodeNous écrivons le script d’après la documentation d’Airtable et le guide d’installation
- 3Testez-leVous le lancez sur une copie de la base ou une vue de test
- 4RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur
Ce dont nous avons besoin
Les tables ou vues Airtable à synchroniser et une capture de leurs champs avec leurs types (texte, nombre, date, sélection unique, enregistrement lié, pièce jointe), la feuille de destination et le nom et l’ordre des colonnes. Le sens voulu et, pour une synchronisation dans les deux sens (Premium), le côté prioritaire quand un même enregistrement change des deux côtés. La fréquence de lancement. Créez le jeton d’accès personnel dans votre compte Airtable ; ne nous l’envoyez jamais.
Nous vous demanderons :
- Que contient la base Airtable ?
- Quel sens vous faut-il ?
- Quels champs reprendre ?
- À quelle fréquence le lancer ?
Comparer les formules
| Formules | EssentielD’Airtable vers Google Sheets15 € | StandardSynchronisation avec paramètres30 € | PremiumOutil de synchronisation bidirectionnelle60 € |
|---|---|---|---|
| Délai | 1 jour | 2 jours | 3 jours |
| Retouches | 1 | 2 | 3 |
| Code | jusqu’à 150 lignes | jusqu’à 400 lignes | jusqu’à 1 000 lignes |
| Fichiers de code | 1 | jusqu’à 3 | jusqu’à 8 |
| Fichier de paramètres | Non | Oui | Oui |
| Messages d’erreur clairs et journal | Non | Oui | Oui |
| Options de lancement et guide pour l’exécution planifiée | Non | Non | Oui |
| Guide d’installation et d’utilisation (README) | Oui | Oui | Oui |
| Langage | Google Apps Script | Google Apps Script | Google Apps Script |
| Commander Essentiel | Commander Standard | Commander 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.
Questions et réponses
Est-ce en direct, comme une synchronisation en temps réel ?
Non. Il copie à chaque lancement : sur un bouton, ou avec le guide de Premium via un déclencheur horaire, par exemple toutes les 15 minutes. Les changements intermédiaires apparaissent au lancement suivant.
Que deviennent les pièces jointes et les enregistrements liés ?
Les pièces jointes arrivent sous forme de liens vers les fichiers. Les enregistrements liés s’affichent par leur nom dès Standard ; en Essentiel, ils arrivent sous forme d’identifiants.
Les modifications dans la feuille peuvent-elles écraser Airtable ?
Seulement en Premium et uniquement dans les champs que vous autorisez, selon votre règle de côté prioritaire. Testez-le d’abord sur une copie de la base.
Aurez-vous accès à ma base ?
Non. Vous créez le jeton et ajoutez le script dans vos propres comptes. Nous travaillons à partir de vos captures et de la documentation d’Airtable.
Vous n’avez pas trouvé la réponse ?


