Documentation

Cookies

Nous utilisons les cookies afin de vous garantir la meilleure expérience sur notre site. Vous pouvez modifier vos préférences à tout moment en cliquant sur "Cookies" en pied de page.

Exemples pratiques

Voici une collection d'exemples concrets et réutilisables pour différents domaines métier. Copiez et adaptez-les à vos besoins.

Facturation

Calcul du total TTC d'une facture

Calcule le total TTC en sommant les lignes de produits avec leurs quantités et TVA.

JavaScript
var lignes = {{facture.lignes}};

var totalHT = SOMME(
  TRANSFORMER(lignes, {{$.quantite}} * {{$.prixUnitaire}})
);

var totalTVA = SOMME(
  TRANSFORMER(lignes,
    {{$.quantite}} * {{$.prixUnitaire}} * {{$.tauxTVA}} / 100
  )
);

var totalTTC = totalHT + totalTVA;

CONCAT(
  "HT: ", FIXER.DECIMALES(totalHT, 2), " € | ",
  "TVA: ", FIXER.DECIMALES(totalTVA, 2), " € | ",
  "TTC: ", FIXER.DECIMALES(totalTTC, 2), " €"
)

Ventilation de TVA par taux

Affiche le détail de la TVA pour chaque taux utilisé dans la facture.

JavaScript
var lignes = {{facture.lignes}};
var tauxUniques = UNIQUE(TRANSFORMER(lignes, {{$.tauxTVA}}));

JOINDRE(
  TRANSFORMER(tauxUniques,
    CONCAT(
      "TVA ", {{$}}, "% : ",
      FIXER.DECIMALES(
        SOMME(
          TRANSFORMER(
            FILTRER(lignes, {{$.tauxTVA}} == {{$1}}),
            {{$.quantite}} * {{$.prixUnitaire}} * {{$.tauxTVA}} / 100
          )
        ),
        2
      ),
      " €"
    )
  ),
  " | "
)

// Résultat: "TVA 5.5% : 12.50 € | TVA 20% : 45.00 €"

Statut de paiement

Affiche un statut clair selon l'état du paiement et l'échéance.

JavaScript
SI {{facture.payee}} == true
ALORS "✅ Payée le " + DDMMYYYY(DATE.DU.PASSAGE.AU.STATUT({{facture}}, "payée"))
SINON SI {{facture.dateEcheance}} < AUJOURDHUI()
ALORS CONCAT(
  "⚠️ En retard de ",
  AUJOURDHUI() - {{facture.dateEcheance}},
  " jours"
)
SINON SI {{facture.dateEcheance}} == AUJOURDHUI()
ALORS "📌 Échéance aujourd'hui"
SINON CONCAT(
  "⏳ Échéance dans ",
  {{facture.dateEcheance}} - AUJOURDHUI(),
  " jours"
)
FINSI

Gestion commerciale

Calcul de remise progressive

Applique une remise selon le montant de la commande.

JavaScript
var montant = {{commande.totalHT}};

var tauxRemise =
  SI montant >= 5000 ALORS 15
  SINON SI montant >= 2000 ALORS 10
  SINON SI montant >= 1000 ALORS 7
  SINON SI montant >= 500 ALORS 5
  SINON 0
  FINSI;

var remise = montant * tauxRemise / 100;
var netHT = montant - remise;

CONCAT(
  "Montant: ", FIXER.DECIMALES(montant, 2), " € - ",
  "Remise ", tauxRemise, "%: -", FIXER.DECIMALES(remise, 2), " € = ",
  "Net: ", FIXER.DECIMALES(netHT, 2), " €"
)

Chiffre d'affaires client sur l'année

Calcule le CA réalisé avec un client sur l'année en cours.

JavaScript
var commandes = CHERCHER.OBJETS(commande, {});
var commandesClient = FILTRER(commandes, {{$.clientId}} == {{client.id}});
var commandesAnnee = FILTRER(commandesClient,
  ANNEE({{$.date}}) == ANNEE(AUJOURDHUI())
  ET {{$.statut}} != "annulée"
);

var caHT = SOMME(TRANSFORMER(commandesAnnee, {{$.totalHT}}));
var nbCommandes = COMPTER(commandesAnnee);

CONCAT(
  nbCommandes, " commande(s) - CA: ",
  FIXER.DECIMALES(caHT, 2), " € HT"
)

Alerte stock bas

Affiche une alerte si le stock est inférieur au seuil minimum.

JavaScript
var stock = {{produit.stock}};
var seuilAlerte = SI.VIDE.RENVOYER({{produit.seuilAlerte}}, 10);
var seuilCritique = SI.VIDE.RENVOYER({{produit.seuilCritique}}, 5);

SI stock <= 0
ALORS "🔴 Rupture de stock"
SINON SI stock <= seuilCritique
ALORS CONCAT("🟠 Stock critique: ", stock, " unités")
SINON SI stock <= seuilAlerte
ALORS CONCAT("🟡 Stock bas: ", stock, " unités")
SINON CONCAT("🟢 En stock: ", stock, " unités")
FINSI

Ressources humaines

Calcul de jours de mission

Calcule le nombre de jours ouvrés et le coût d'une mission.

JavaScript
var debut = {{mission.dateDebut}};
var fin = {{mission.dateFin}};
var tjm = {{consultant.tarifJournalier}};

var joursOuvres = JOURS.OUVRES(debut, fin);
var coutHT = joursOuvres * tjm;
var coutTTC = coutHT * 1.20;

CONCAT(
  "Du ", DDMMYYYY(debut), " au ", DDMMYYYY(fin), "
",
  joursOuvres, " jours × ", tjm, " € = ",
  FIXER.DECIMALES(coutTTC, 2), " € TTC"
)

Ancienneté d'un employé

Calcule et affiche l'ancienneté en années et mois.

JavaScript
var dateEmbauche = {{employe.dateEmbauche}};
var joursAnciennete = JOURS.ENTRE.INCLU(dateEmbauche, AUJOURDHUI());
var annees = joursAnciennete / 365;
var anneesEntieres = NOMBRE(FIXER.DECIMALES(annees, 0));
var moisRestants = NOMBRE(FIXER.DECIMALES((annees - anneesEntieres) * 12, 0));

SI anneesEntieres >= 1
ALORS CONCAT(anneesEntieres, " an(s) et ", moisRestants, " mois")
SINON CONCAT(moisRestants, " mois")
FINSI

Fiche collaborateur

Génère un résumé des informations d'un collaborateur.

JavaScript
var nom = CONCAT({{employe.prenom}}, " ", MAJUSCULE({{employe.nom}}));
var poste = SI.VIDE.RENVOYER({{employe.poste}}, "Non défini");
var email = SI.VIDE.RENVOYER({{employe.email}}, "N/A");
var tel = SI.VIDE.RENVOYER({{employe.telephone}}, "N/A");
var nationalite = SI.ECHOUE.RENVOYER(
  NATIONALITE({{employe.nationalite}}),
  "Non renseignée"
);

CONCAT(
  "👤 ", nom, "
",
  "💼 ", poste, "
",
  "📧 ", email, "
",
  "📱 ", tel, "
",
  "🌍 ", nationalite
)

Suivi de projets

Avancement d'un projet

Calcule le pourcentage d'avancement basé sur les tâches terminées.

JavaScript
var taches = {{projet.taches}};
var totalTaches = COMPTER(taches);
var tachesTerminees = COMPTER(FILTRER(taches, {{$.statut}} == "terminée"));

SI totalTaches == 0
ALORS "Aucune tâche définie"
SINON
  var pourcentage = (tachesTerminees / totalTaches) * 100;
  var barre = SI pourcentage >= 75 ALORS "🟩🟩🟩"
    SINON SI pourcentage >= 50 ALORS "🟩🟩⬜"
    SINON SI pourcentage >= 25 ALORS "🟩⬜⬜"
    SINON "⬜⬜⬜"
    FINSI;

  CONCAT(
    barre, " ",
    FIXER.DECIMALES(pourcentage, 0), "% (",
    tachesTerminees, "/", totalTaches, " tâches)"
  )
FINSI

Tâches en retard

Liste les tâches en retard avec leur nombre de jours de dépassement.

JavaScript
var taches = {{projet.taches}};
var tachesEnRetard = FILTRER(taches,
  {{$.dateEcheance}} < AUJOURDHUI()
  ET {{$.statut}} != "terminée"
);

SI COMPTER(tachesEnRetard) == 0
ALORS "✅ Aucune tâche en retard"
SINON
  CONCAT(
    "⚠️ ", COMPTER(tachesEnRetard), " tâche(s) en retard:
",
    JOINDRE(
      TRANSFORMER(tachesEnRetard,
        CONCAT(
          "• ", {{$.titre}}, " (",
          AUJOURDHUI() - {{$.dateEcheance}}, " jours)"
        )
      ),
      "
"
    )
  )
FINSI

Budget consommé

Affiche le budget consommé par rapport au budget total.

JavaScript
var budgetTotal = {{projet.budget}};
var depenses = SOMME({{projet.depenses.montant}});
var reste = budgetTotal - depenses;
var pourcentageConsomme = (depenses / budgetTotal) * 100;

var statut =
  SI pourcentageConsomme >= 100 ALORS "🔴 Dépassement"
  SINON SI pourcentageConsomme >= 90 ALORS "🟠 Attention"
  SINON SI pourcentageConsomme >= 75 ALORS "🟡 Vigilance"
  SINON "🟢 OK"
  FINSI;

CONCAT(
  statut, " Budget consommé à ", FIXER.DECIMALES(pourcentageConsomme, 0), "%
",
  "Dépensé: ", FIXER.DECIMALES(depenses, 2), " € / ",
  FIXER.DECIMALES(budgetTotal, 2), " 
",
  "Reste: ", FIXER.DECIMALES(reste, 2), " €"
)

Génération de références

Numéro de facture

Génère un numéro de facture au format FAC-AAAA-MM-NNNN.

JavaScript
var annee = ANNEE(AUJOURDHUI());
var mois = REMPLIR.ZEROS(MOIS(AUJOURDHUI()) + 1, 2);
var numero = REMPLIR.ZEROS({{facture.numeroSequentiel}}, 4);

CONCAT("FAC-", annee, "-", mois, "-", numero)

// Résultat: "FAC-2026-01-0042"

Code client automatique

Génère un code client basé sur le nom et un numéro incrémental.

JavaScript
var prefixe = MAJUSCULE(COUPER({{client.nom}}, 3));
var numero = REMPLIR.ZEROS({{client.id}}, 5);

CONCAT(prefixe, "-", numero)

// "ACME" → "ACM-00042"

Référence produit intelligente

Génère une référence incluant catégorie, année et numéro séquentiel.

JavaScript
var categorie = MAJUSCULE(COUPER({{produit.categorie}}, 2));
var annee = COUPER(CONCAT(ANNEE(AUJOURDHUI())), 2, 2);
var numero = REMPLIR.ZEROS({{produit.numeroSequentiel}}, 4);

CONCAT(categorie, annee, "-", numero)

// Catégorie "Électronique", 2026, n°42 → "EL26-0042"

Prochaine étape

Terminez votre apprentissage avec les bonnes pratiques pour écrire des formules performantes et maintenables.