# Champs calculés

Calculez des scores, des totaux et du texte dynamique à partir des réponses du formulaire.

## Champs calculés

Des champs invisibles qui calculent des valeurs à partir des réponses — scores de quiz, totaux de commandes, évaluations de prospects ou texte concaténé. Ils se mettent à jour en temps réel au fur et à mesure que le répondant remplit le formulaire.

<h2 id="how-it-works">Comment ça fonctionne</h2>

<p>
  Les champs calculés sont invisibles pour les répondants, mais calculent des valeurs selon les règles logiques que vous définissez. Ils
  stockent un résultat de type <strong>nombre</strong> ou <strong>texte</strong>, et se mettent à jour en direct au fur et à mesure que le
  répondant répond aux questions.
</p>

<p>
  Le principe : vous créez un champ calculé, définissez une valeur initiale, puis ajoutez des{' '}
  <a href="/fr/building-forms/conditional-logic">règles logiques</a> avec l’action <strong>Calculer la valeur</strong>. Chaque règle exécute
  une opération (additionner, multiplier, définir, etc.) lorsque sa condition est remplie.
</p>

<h2 id="adding">Ajouter un champ calculé</h2>

<p>
  Tapez <code>/</code> sur une ligne vide et choisissez <strong>Champ calculé</strong> dans la catégorie Mise en page. Il ne fonctionne
  qu’au niveau supérieur du formulaire — pas à l’intérieur d’une colonne ni d’un groupe répétable. Définissez :
</p>

<ul>
  <li>
    <strong>Type de champ</strong> — nombre ou texte
  </li>
  <li>
    <strong>Nom</strong> — la façon dont vous vous y référez dans les règles logiques et les mentions @. C’est aussi la clé de ce champ,
    donc la valeur part vers les intégrations et les callbacks sous ce nom
  </li>
  <li>
    <strong>Valeur initiale</strong> — la valeur de départ avant que toute règle ne s’applique. Saisissez une valeur littérale (par ex.{' '}
    <code>0</code> pour un score) ou choisissez un <a href="/fr/building-forms/hidden-fields">champ masqué</a> du même type (nombre ou
    texte) pour l’initialiser depuis un paramètre d’URL. Si le paramètre est absent ou invalide, le champ démarre à <code>0</code> (nombre)
    ou vide (texte)
  </li>
</ul>

<h2 id="numeric-operations">Opérations numériques</h2>

<p>Ce sont les entrées exactes du sélecteur d’opération sur une action Calculer la valeur.</p>

<h2 id="text-operations">Opérations sur le texte</h2>

<h2 id="operation-values">Valeurs des opérations</h2>

<p>Chaque opération prend une valeur qui est soit :</p>

<ul>
  <li>
    <strong>Une valeur fixe</strong> — un nombre ou une chaîne spécifique que vous saisissez (par ex. toujours ajouter <strong>10</strong>)
  </li>
  <li>
    <strong>La valeur d’un autre champ</strong> — choisissez une question, un champ masqué ou un champ calculé pour que la valeur soit
    dynamique (par ex. ajouter ce que le répondant a saisi dans Q2)
  </li>
</ul>

<p>
  Une opération numérique est ignorée lorsque sa valeur est vide ou n’est pas un nombre, et diviser par 0 est également ignoré, si bien que
  le total actuel reste inchangé. Les réponses aux questions masquées par la logique ne comptent pas — une question masquée n’a aucune
  valeur, donc sa réponse n’atteint jamais un calcul.
</p>

<p>
  Chaque règle Calculer la valeur qui correspond s’exécute, dans l’ordre du document, sur la valeur en cours — elles s’accumulent plutôt
  qu’elles ne s’affrontent. Une exception à l’ordre du document : une règle qui <em>lit</em> un champ calculé s’exécute toujours après la
  règle qui l’<em>écrit</em>, de sorte qu’un score est achevé avant que quoi que ce soit ne s’y ramifie. Les règles qui écrivent
  réciproquement dans les champs les unes des autres, en boucle, sont signalées comme un avertissement de publication qui nomme la chaîne —
  mieux vaut rompre la boucle que de publier malgré elle.
</p>

<h2 id="examples">Exemples</h2>

<p>
  <strong>Score de quiz</strong> — Créez un champ calculé "Score total" avec la valeur initiale <strong>0</strong>. Ajoutez des règles
  logiques : si Q1 est égal à "Oui", <strong>Ajouter 10</strong> ; si Q2 est supérieur à 5, <strong>Ajouter</strong> la valeur de Q2. Le
  score se met à jour en direct au fur et à mesure que le répondant répond.
</p>

<p>
  <strong>Tarification dynamique</strong> — Un formulaire de commande de produit comporte un champ Nombre pour la quantité et une liste
  déroulante pour la taille (Petit, Moyen, Grand). Créez un champ calculé "Prix". Règles logiques : si la taille est "Petit",{' '}
  <strong>Définir à 10</strong> ; si "Moyen", <strong>Définir à 15</strong> ; si "Grand", <strong>Définir à 20</strong>. En dessous, ajoutez
  une règle sans condition qui <strong>Multiplie</strong> Prix par le champ quantité. Les règles s’exécutent de haut en bas, et une règle
  sans condition s’exécute toujours. Insérez <strong>@Prix</strong> dans la page de remerciement. Pour facturer directement ce prix calculé,
  voir <a href="/fr/building-forms/payment-collection#dynamic-pricing">Tarification dynamique</a> dans la Collecte de paiements.
</p>

<p>
  <strong>Qualification des prospects</strong> — Trois questions de notation par étoiles évaluent le budget, le calendrier et l’autorité. Un
  champ "Score prospect" utilise <strong>Ajouter</strong> pour chaque note. Une règle logique vérifie : si le score prospect est supérieur à
  12, <strong>Définir la page suivante</strong> sur "Suivi prioritaire" ; sinon, passer au remerciement standard.
</p>

<p>
  <strong>Concaténation de texte</strong> — Un champ calculé de texte "Nom complet" commence vide. La logique ajoute{' '}
  <strong>@Prénom</strong>, puis ajoute un espace, puis ajoute <strong>@Nom de famille</strong>. Utilisez <strong>@Nom complet</strong> dans
  la page de remerciement ou les notifications par e-mail.
</p>

> 💡 **Combiner avec la logique**
> <p>
>     Les champs calculés fonctionnent aussi comme sources de conditions. Une règle calcule une valeur, une autre y réagit — par ex. "si Total > 50, aller à la page Premium." Cela vous permet de créer une notation en plusieurs étapes sans aucun code.
>   </p>

<h2 id="pre-populating">Pré-remplir d’autres champs</h2>

<p>
  Un champ visible peut démarrer avec la valeur d’un champ calculé, afin que le répondant relise une valeur calculée au lieu de la taper.
  Dans un champ Text Input, Text Area, Email, Phone Number, Website URL ou Number, tapez <kbd>@</kbd> comme premier caractère du champ de
  saisie et choisissez le champ calculé. Le répondant peut toujours modifier la valeur.
</p>
<p>
  Le champ de saisie prend la première valeur que possède le champ calculé — généralement sa valeur initiale, ou le champ masqué qui
  l’alimente. Les modifications ultérieures effectuées par des règles logiques ne remplacent pas ce qui est déjà présent dans le champ de
  saisie. Pour afficher une valeur qui continue de se mettre à jour, insérez-la plutôt dans du texte avec une{' '}
  <a href="/fr/building-forms/answer-piping">mention @</a>. Voir{' '}
  <a href="/fr/building-forms/field-configuration#default-values">Valeurs par défaut issues d’autres champs</a> pour le détail.
</p>
<h2 id="next-steps">Étapes suivantes</h2>
<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Insertion des réponses](/fr/building-forms/answer-piping) — Afficher les valeurs calculées dans le formulaire ou par e-mail
  - [Page de remerciement](/fr/building-forms/custom-thank-you) — Afficher les résultats calculés après la soumission
  - [Paramètres du formulaire](/fr/building-forms/form-settings) — Notifications, contrôle d’accès, et plus encore
  - [Apparence et thèmes](/fr/branding-domains/appearance-theming) — Thème, couverture, logo, mode sombre
</div>
