Python dans Grist pour Débutants : Premier Pas en 2026
Vous n'avez jamais codé ? Parfait !
Ce tutoriel est conçu pour les débutants complets. Aucune expérience en programmation n'est requise. En 30 minutes, vous serez capable d'écrire vos premières formules Python dans Grist.
Qu'est-ce que Python dans Grist ?
Python est un langage de programmation simple et puissant. Dans Grist, il vous permet d'aller au-delà des formules standards pour :
- Automatiser des calculs complexes
- Manipuler des dates et du texte
- Créer des logiques conditionnelles avancées
- Connecter vos données à des services externes
Votre première formule Python (2 minutes)
Étape 1 : Créer une colonne calculée
- Ouvrez votre document Grist
- Cliquez sur le "+" à droite de vos colonnes
- Sélectionnez "Add Column" puis "Formula column"
- Cliquez sur l'icône de formule (fx) dans l'en-tête de la nouvelle colonne
Étape 2 : Écrire votre première formule
Dans la fenêtre qui s'ouvre, vous voyez un champ de texte. C'est ici que vous écrivez du Python.
Exercice 1 : Concaténer prénom et nom
$Prenom + " " + $NomCliquez sur "Apply". Magique ! Votre colonne affiche maintenant le nom complet.
Explication
$Prenom: récupère la valeur de la colonne "Prenom"+: concatène (assemble) les textes" ": ajoute un espace entre les deux
Les concepts essentiels
1. Accéder aux colonnes avec $
Pour utiliser une valeur d'une autre colonne, prefixez son nom avec $ :
$Prix_unitaire * $Quantite # Calculer un total
$Nom.upper() # Mettre en majuscules
$Date.year # Extraire l'année2. Les conditions (if/else)
Python permet de faire des choix :
if $Montant > 1000:
return "Gros client"
else:
return "Client standard"Version courte (plus élégante) :
"Gros client" if $Montant > 1000 else "Client standard"3. Gérer les valeurs vides
Souvent, certaines cellules sont vides. Il faut gérer ce cas :
if $Montant:
return $Montant * 1.20 # Ajouter 20% de TVA
return 0 # Si vide, retourner 0Exercices pratiques progressifs
Exercice 2 : Calculer un âge
Vous avez une colonne "Date_naissance". Créez une colonne "Age" :
from datetime import date
aujourd_hui = date.today()
age = aujourd_hui.year - $Date_naissance.year
# Ajuster si l'anniversaire n'est pas encore passé
if (aujourd_hui.month, aujourd_hui.day) < ($Date_naissance.month, $Date_naissance.day):
age -= 1
return ageÀ retenir : from datetime import date permet d'utiliser les fonctions de date.
Exercice 3 : Formater un prix
Afficher un montant avec la devise et 2 décimales :
if $Prix:
return f"{$Prix:.2f} €"
return "—"Explication : Le f"..." est une f-string. {:.2f} formate avec 2 décimales.
Exercice 4 : Statut selon une date d'échéance
from datetime import datetime
if $Date_echeance:
jours_restants = ($Date_echeance - datetime.now()).days
if jours_restants < 0:
return "🔴 En retard"
elif jours_restants <= 3:
return "🟠 Urgent"
elif jours_restants <= 7:
return "🟡 Cette semaine"
else:
return "🟢 À jour"
return "⚪ Non planifié"Exercice 5 : Extraire des initiales
Depuis un nom complet, obtenir les initiales :
if $Nom_complet:
mots = $Nom_complet.split() # Sépare par les espaces
initiales = ""
for mot in mots:
initiales += mot[0].upper() # Première lettre en majuscule
return initiales
return ""Exemple : "Jean Dupont" → "JD"
Les erreurs courantes et solutions
Erreur 1 : "NameError"
Message : name 'Prenom' is not defined
Solution : N'oubliez pas le $ devant le nom de colonne.
❌ Prenom + " " + Nom
✅ $Prenom + " " + $Nom
Erreur 2 : Valeur vide qui bloque
Problème : Votre formule plante quand une cellule est vide.
Solution : Toujours vérifier si la valeur existe :
if $Montant:
# Votre calcul ici
return resultat
return None # ou 0, ou "—"Erreur 3 : Type incompatible
Message : can't concatenate str and int
Solution : Convertir les types :
# ❌ Erreur
"Total : " + $Montant
# ✅ Correct
"Total : " + str($Montant)
# ✅ Ou avec f-string (recommandé)
f"Total : {$Montant} €"Cheat sheet : Les fonctions indispensables
Texte
$Nom.upper() # MAJUSCULES
$Nom.lower() # minuscules
$Nom.title() # Première Lettre En Majuscule
$Nom.strip() # Enlever espaces avant/après
$Nom.replace("a", "b") # Remplacer
len($Nom) # Nombre de caractèresNombres
round($Prix, 2) # Arrondir à 2 décimales
abs($Valeur) # Valeur absolue
max($A, $B) # Le plus grand
min($A, $B) # Le plus petit
sum([$A, $B, $C]) # Somme d'une listeDates
from datetime import datetime, timedelta
$Date.year # Année (2026)
$Date.month # Mois (1-12)
$Date.day # Jour (1-31)
$Date.weekday() # Jour semaine (0=Lundi)
# Ajouter des jours
$Date + timedelta(days=7)
# Différence en jours
($Date_fin - $Date_debut).daysProchaines étapes
Félicitations ! Vous maîtrisez les bases de Python dans Grist. Pour aller plus loin :
Le guide complet Python dans Grist- Pour les fonctions avancéesLes 10 formules essentielles- Snippets prêts à l'emploiManipuler les dates- Toutes les opérations temporelles
Besoin d'aide ?
Chaque projet est unique. Si vous avez besoin d'un accompagnement personnalisé pour automatiser vos bases Grist :