Taille de police :

×

Lecture de la page :

Lire Test2

Introduction à l'utilisation des champs dans Word

0
(0)

Généralités sur la manipulation des champs dans Word.

C'est quoi un champ ?

Un élément dynamique inséré dans un document, capable directement ou indirectement de générer, de récupérer, d’afficher une valeur de manière automatique.

C'est une sorte d'instruction / de code. Un champ peut être si nécessaire imbriqué dans un autre champ afin de réaliser une tâche plus complexe.

  • Limitation à 20 niveaux d'imbrication (remarque : il est souvent possible d'éviter/limiter les cas imbrications multiples).

La plupart des champs possèdent 2 modes d'affichages

  • Le mode Code de champ qui permet de voir et saisir la "formule" du champ.
  • Le mode Résultat qui affiche un résultat (une valeur numérique, un texte, une date, une table des matières...) ou qui n'affiche rien pour certain champ (création d'un signet, exclure un des enregistrements dans un publipostage...).

Pour passer d'un affichage à l'autre on peut utiliser :

  • Le raccourci Maj + F9 : pour agir sur le champ "actif".
  • Le raccourci Ctrl + F9 : pour agir sur tous les champs du document.
  • Le menu contextuel (clic droit de la souris sur le champ) puis la commande Basculer les codes de champs.
Menu contextuel

Certains champs ne possèdent que le mode d'affichage Code de champ comme les champs d'entrées de table et d'index par exemple. Ils ont le formatage de police Masqué (indiqué par le soulignement pointillé), ils apparaissent ainsi à l'écran quand les marques de paragraphe sont visibles (¶) mais pas à l'impression (sauf configuration spécifique).

Champ ayant le formatage Masqué

Syntaxe générale

Ordre recommandé

{ NOMDUCHAMP Arguments \Commutateurs spécifiques \Commutateurs généraux }
  • NOMDUCHAMP : Nom spécifique en majuscule ou minuscule,
  • Arguments : Spécifique au champ (un nom de signet, un texte, opérateur...),
  • Commutateurs spécifiques : Instructions parfois facultatives permettant de modifier le résultat du champ,
  • Commutateurs généraux : Instructions facultatives permettant de modifier la mise en forme de la valeur renvoyée par un champ ou de la verrouiller.

Insertion / création d'un champ

On se positionne là où l'on veut le champ (point d'insertion).

Via l'interface

À partir du ruban Insertion > QuickPart > Champ, Word propose une interface permettant d'insérer le champ et de configurer les différents options disponibles (commutateurs).

Boîte de dialogue Champ
  1. Les champs sont classés par catégories.
  2. Liste des champs de la catégorie sélectionnée en (1).
  3. Courte description de la fonction du champ.
  4. Paramètres spécifiques aux champs. Ce sont les paramètres les plus courants correspondants à différent commutateurs du champ.
  5. Activation du commutateur MERGEFORMAT (voir plus bas).
  6. Bouton permettant de faire une saisie directe ou de modifier le code du champ.
Boîte de dialogue Champ et Options pour les champs
  1. Bouton permettant de revenir à l'affichage précédent.
  2. Zone de saisie et de visualisation du code du champ avec un rappel de sa syntaxe.
  3. Bouton permettant d'accéder à la boîte de dialogue Options pour les champs (9)
  4. Fenêtre présentant les différents commutateurs utilisables et offrant un bouton pour les insérer dans le code du champ.
    • Via le bouton, le commutateur sera ajouté à la fin sans aucun contrôle (exemple : commutateurs en double, incompatibles, incomplet...)

Remarque : Aucun contrôle de validation du code du champ n'est effectué.

Via une saisie directe

  1. On utilise le raccourci clavier Ctrl+F9 pour générer un champ vide affichant2 accolades { }. (Attention : Saisir les accolades au clavier ne fonctionne pas !), Champ vide
  2. On saisit le nom du champ et ses paramètres entre les accolades présentes,
  3. On afficher le résultat en appuyant sur la touche F9 du clavier (mise à jour) ou utiliser la commande du menu contextuel (clic droit de la souris) "Mettre à jour les champs". Menu contextuel : Commande Basculer les codes de champs

Modification du champ

Via l'interface

Utiliser la commande du menu contextuel (clic droit de la souris) "Modification du champs" pour réafficher la fenêtre Champ.

Via une saisie directe

  1. Afficher le code du champ
    • Commande du menu contextuel (clic droit de la souris) "Basculer les codes de champs". Le champ ou les champs dans la sélection afficheront leur code.
    • Raccourci Maj + F9. Le champ ou les champs dans la sélection afficheront leur code.
    • Raccourci Alt + F9. Dans ce cas c'est l'ensemble des champs de tout le document qui afficheront leur code.

      Ces 3 commandes permettent de basculer entre le code du champ et son résultat et inversement.
  2. Faite la/les modification(s).
  3. Valider et afficher le résultat du champ
    • Appuyer sur la touche F9 du clavier (mise à jour) ou utiliser la commande du menu contextuel (clic droit de la souris) "Mettre à jour les champs". Cela permet la mise à jour ET l'affichage du résultat si Alt + F9 N'A PAS été utilisé pour afficher le code.
    • Utiliser le raccourci Alt + F9 pour afficher le résultat et F9 pour sa mise à jour (F9 puis Alt + F9 fonctionne aussi) si Alt + F9 a été précédemment utilisé pour afficher le code du champ.

Mise à jour du champ

  1. Sélectionner la plage contenant le/les champ(s)
  2. Appuyer sur la touche F9 du clavier ou utiliser la commande du menu contextuel (clic droit de la souris) "Mettre à jour les champs"

Voir aussi : Dans la jungle de la mise à jour des champs

Commutateurs généraux

Ce sont des instructions facultatives permettant de modifier la mise en forme de la valeur renvoyée par un champ ou de la verrouiller.

\* Mise en forme

Mise en forme externe (via l'interface)

  • MERGEFORMAT

On peut faire une mise en forme au texte du résultat d'un champ de la même façon que l'on met en forme n’importe quel texte d'un document (par exemple, gras, souligné, etc.).

Il suffit de sélectionner le résultat du champ puis d'appliquer la mise en forme. C'est ce que l'on appelle une surcharge de style (tous texte dans Word utilise 2 styles - voir Comprendre et utiliser les styles pour travailler comme un pro).

Problème : Si l'on met à jour le champ, toute mise en forme de texte (surcharge) que vous avez appliquée aux résultats du champ peut être perdue (cela dépend du champ et si c'est une surcharge caractère ou paragraphe).

On peut tenter de préserver la mise en forme en ajoutant dans le code du champ \* MERGEFORMAT.

Exemple :

{ DAT​E \* MERGEFORMAT }

Cette solution ne fonctionnant pas avec tous les champs, il plus intéressant d'appliquer un style avec la mise en forme désirée au lieu d'une simple surcharge. C'est par exemple la solution utilisée pour la mise en forme des tables des matières via les styles TM1, TM2...

Il peut être associé aux autres commutateurs.

{ Id \* Caps \* MERGEFORMAT }

Mise en forme interne

  • Caps

Affiche la première lettre de chaque mot en CAPITAL/MAJUSCULE, les autres passeront en minuscules.

Exemple :

{ S​ET Id "jeAn dupoNt" }
{ Id \* Caps } => "Jean Dupont"
  • FirstCap

Affiche la première lettre du premier mot en MAJUSCULE.

Exemple :

{ Id \* FirstCap } => "JeAn dupoNt"
  • Upper

Affiche toutes les lettres en CAPITALS/MAJUSCULES.

Exemple :

{ Id \* Upper } => "JEAN DUPONT"
  • Lower

Affiche toutes les lettres en minuscules.

Exemple :

{ Id \* Lower } => "jean dupont"

Remarque : Caps et Lower seront sans effets visibles si l’ensemble du champ qui le contient est mis en forme avec la paramètre "Petites capitales/majuscules" ou "Capital/Majuscules" avec MERGEFORMAT ou via un style.

  • alphabetic / Alphabetic / ALPHABETIC

Affiche les nombres de 1 à 27 avec une représentation alphabétique.

Exemples :

{ PAGE \* alphabetic } => "d" pour la page 4
{ PAGE \* Alphabetic } => "D" pour la page 4
{ PAGE \* ALPHABETIC } => "D" pour la page 4

{ PAGE \* alphabetic } => "aa" pour la page 27

Après 27 le résultat n'est plus correct (Par exemple, pour 28 on obtient "bb" et non "ab"). Au-delà de 780 on obtient "Erreur ! Ce nombre ne peut être représenté sous le format spécifié".

  • Arabic

Affiche le résultat sous forme d'un nombre cardinal arabe.

À première vue on pourrait se demander l'intérêt de ce commutateur mais il permet par exemple de forcer la conversion des numéros de page dont l'affichage est parfois configuré autrement qu'avec de chiffres arabes.

Exemple :

On a :
{ PAGE } => "D" pour la page 4
{ PAGE \* Arabic } => "4" pour la page 4
  • ArabicDash

Nombres cardinaux arabes entourés de tirets.

Exemple :

{ PAGE \* ArabicDash } => "- 4 -" pour la page 4
  • CardText

Affiche les résultats sous forme de texte cardinal.

Exemples :

{ PAGE \* CardText } => "vingt-huit" pour la page 28 ("twenty-eigth" si le texte marqué Anglais)

{ SE​T Val0 0 }
{ S​ET Val1 1 }
{ S​ET Val2 2,4 }
{ S​ET Val3 2,5 }
{ S​ET Val4 -4 }
{ S​ET Nom1 "Arnaud" }
{ S​ET Nom2 "1 Arnaud 24" }

{ Val0 \* CardText } => "zéro"
{ Val1 \* CardText } => "un"
{ Val2 \* CardText } => "deux" (la valeur a été arrondie)
{ Val3 \* CardText } => "trois" (la valeur a été arrondie)
{ Val4 \* CardText } => "Erreur ! Ce nombre ne peut être représenté sous le format spécifié"
{ Nom1 \* CardText } => "Arnaud"
{ Nom2 \* CardText } => "vingt-cinq"
  • OrdText

Affiche le résultat sous forme d'un texte ordinal en lettres minuscules.

Exemples :

{ PAGE \* OrdText } => "vingt-huitième" pour la page 28
{ PAGE \* OrdText \* Upper } => "VINGT-HUITIÈME" pour la page 28

{ Val0 \* OrdText } => "zéro"
{ Val1 \* OrdText } => "premier"
{ Val2 \* OrdText } => "deuxième"
{ Val3 \* OrdText } => "troisième"
{ Val4 \* OrdText } => "Erreur ! Ce nombre ne peut être représenté sous le format spécifié"
{ Nom1 \* OrdText } => "Arnaud"
{ Nom2 \* OrdText } => "vingt-cinquième"
  • Ordinal

Affiche le résultat sous forme d'un nombre ordinal en lettres minuscules.

Exemples :

{ PAGE \* Ordinal } => "28e" pour la page 28

{ Val0 \* Ordinal } => "0"
{ Val1 \* Ordinal } => "1er"
{ Val2 \* Ordinal } => "2e"
{ Val3 \* Ordinal } => "3e"
{ Val4 \* Ordinal } => "-4e"
{ Nom1 \* Ordinal } => "Arnaud"
{ Nom2 \* Ordinal } => "25e"
  • Roman et roman

Affiche le résultat sous forme de chiffres romains (Lettres minuscules avec roman et capitale avec Roman).

Exemples :

{ PAGE \* Roman } => "XXVIII" pour la page 28

{ Val0 \* Roman } => ""
{ Val1 \* roman } => "i"
{ Val2 \* roman } => "ii"
{ Val3 \* Roman } => "III"
{ Val4 \* Roman } => "Erreur ! Ce nombre ne peut être représenté sous le format spécifié"
{ Nom1 \* Roman } => "Arnaud"
{ Nom2 \* Roman } => "xxv"
  • Hex ou hex

Affiche le résultat sous forme d'un nombre hexadécimal.

Exemples :

{ PAGE \* He​x } => "1C" pour la page 28

{ Val0 \* He​x } => "0"
{ Val1 \* He​x } => "1"
{ Val2 \* He​x } => "2"
{ Val3 \* He​x } => "3"
{ Val4 \* He​x } => "Erreur ! Ce nombre ne peut être représenté sous le format spécifié"
{ Nom1 \* He​x } => "Arnaud"
{ Nom2 \* He​x } => "19"
  • DollarText

Affiche le résultat sous forme de texte cardinal pour la partie entière puis "et" à la place de la virgule puis affiche les deux premières décimales (arrondies) sous la forme de numérateurs arabes sur 100.

Exemples :

{ Val0 \* DollarText } => "zéro et 00/"
{ Val2 \* DollarText } => "deux et 40/100"
{ Val3 \* DollarText } => "deux et 50/100"
{ Val4 \* DollarText } => "Erreur ! Ce nombre ne peut être représenté sous le format spécifié"
{ Nom1 \* DollarText } => "Arnaud"
{ Nom2 \* DollarText } => "vingt-cinq et 00/"
  • CHARFORMAT

Applique la mise en forme de la première lettre du champ au résultat entier.

Attention : Les informations de l'aide indique "la première lettre du nom du champ" mais c'est en réalité le 1er caractère après l'accolade ouvrante qui DOIT être un espace (sinon cela ne fonctionne pas) !

Exemples :

Exemple de rendu de Charformat

Utilisation : Le 1er espace ayant par défaut avec la mise en forme du paragraphe dans lequel le champ est inséré, ce commutateur permet d'éviter de masquer les surcharges de mise en forme que le champ pourrait renvoyer (exemple : Pour éviter qu'une légende personnalisée en rouge soit renvoyée en rouge par un renvoi REF dans un paragraphe en noir).

  • CHARFORMAT et MERGEFORMAT (😁)

Non documenté, donne un comportement "amusant" !

Dans ce cas, la mise en forme de la 1ère lettre de chaque mot du RÉSULTAT du champ "pilote" la mise en forme du mot entier !

\# Mise en forme des valeurs numériques

Pour cela on fournit une chaîne de caractères spécifiques codant un modèle de représentations visuel de la valeur (un masque/une image). Je conseille de prendre l'habitude de l'écrire entre guillemets même si ce n'est toujours obligatoire en réalité.

Pour comprendre les 2 principaux codes (0 et #), on doit avoir la notion de chiffres significatifs et de chiffres non significatifs :

  • Dans "010,0600" seul la partie"10,06" est significative ("010,0600" = "10,06").
  • Dans "00" il n'y a aucun chiffre significatif.

En fonction de cela et du résultat attendu on utilisera des codes de formatage différents.

Structure du masque /format

Un champ peut disposer de 1 à 3 codes de formatage séparés par un point-virgule :

  • 1 code => { ... \# "Code de Formatage 1" }
    • "Code de Formatage 1" s'appliquera à toutes les valeurs numériques.

Exemples :

{ = 1 \# "0" }  => "1"
{ = -1 \# "0" } => "-1"
{ = 0 \# "0" }  => "0"
  • 2 codes => { ... \# "Code de Formatage 1;Code de Formatage 2" }
    • "Code de Formatage 1" s'appliquera à toutes les valeurs numériques positives et à 0.
    • "Code de Formatage 2" s'appliquera à toutes les valeurs numériques négatives.

Exemples :

{ = 1 \# "0;(0)" }  => "1"
{ = -1 \# "0;(0)" } => "(1)"
{ = 0 \# "0;(0)" }  => "0"
  • 3 codes => { ... \# "Code de Formatage 1;Code de Formatage 2;Code de Formatage 3" }
    • "Code de Formatage 1" s'appliquera à toutes les valeurs numériques positives.
    • "Code de Formatage 2" s'appliquera à toutes les valeurs numériques négatives.
    • "Code de Formatage 3" s'appliquera à la valeur 0.

Exemples :

{ = 1 \# "0;(0);'Soldé'" }  => "1"
{ = -1 \# "0;(0);'Soldé'" } => "(1)"
{ = 0 \# "0;(0);'Soldé'" }  => "Soldé"

{ = 0 \# "0;(0);" }         => "" (pas ​d​e retour)

Remarquer les apostrophes servant de guillemets autour du texte.

Code de mise en forme

Les chiffres de la partie entière (à gauche de la virgule) seront toujours affichés.

Les chiffres de la partie décimale (à droite de la virgule) seront affichés seulement si un code force leurs affichage. Cela permettra ainsi de choisir le nombre de décimales à afficher (le résultat sera un arrondit prenant en compte les décimales non affichées).

  • 0 (zéro) : Force l'affiche des chiffres significatifs et non significatifs.

Exemples :

{ = 010,0600 \# "# ##0,0" } => "10,1"
{ = 20 \# "000000,0" }      => "00020,0"
{ = 0 \# "0" }              => "0"

Pour le séparateur décimal, on utilise celui spécifié dans les paramètres régionaux du Panneau de configuration

  • # : Force l'affiche des chiffres significatifs (les non significatifs seront remplacés par des espaces).

Exemples :

{ = 1200300 \# "# ##0,00" } => "1 200 300,00"
{ = 0 \# "#" }              => " "   (un espace)
{ = 5 \# "####" }           => "  5" (remarquer les espaces avant le 5)
{ = 2711021231124 \# "# ## ## ## ### ###" } => "2 71 10 21 231 124"

Remarques :

  • Pour que "# ##0,00" groupe les chiffres en groupe de 3 (séparateur de millier, million..."), il faut saisir une espace insécable étroite (au féminin parlant du caractère - code U+202F) sur les postes sous Windows Français récents (caractère lié aux paramètres régionaux du Panneau de configuration).
  • Le chiffre 0 seul est considéré comme non significatif.
  • + : Force l'affichage d'un + pour les valeurs positives

Exemples :

{ = -5 \# "+0" } => "-5"
{ = 0 \# "+0" }  => "0"
{ = 6 \# "+0" }  => "+6"
  • x :
    • Permet de tronquer l'affichage des chiffres à sa gauche s'il est dans la partie entière.
    • A le même rôle que "#" mais tronque les espaces après le dernier chiffre affiché.

Exemples :

{ = 10002 + 8400 \# "x##" }    => "402" (les 2 1er chiffres du résultat 18402 ne sont pas affichés)

{ = 1500,23428 \# "# ##0,00##" } => "1 500,2343"
{ = 1500 \# "# ##0,00##" }       => "1 500,00  " (remarquer les 2 espaces remplaçant les 2 # en fin de chaîne)
{ = 1500,23428 \# "# ##0,00xx" } => "1 500,2343"
{ = 1500 \# "# ##0,00xx" }       => "1 500,00"   (remarquer lʼabsence dʼespace en fin de chaîne)
  • `Identifiant` : Permet de rappeler la valeur du champ SEQ précédent ayant cet identifiant (par exemple un numéro de légende).

Il faut encadrer l'identifiant d'accents "graves" générés par la touche (7 è ` ) du clavier.

Exemple :

{ = 5 \# "0 '(résultat du tableau' `Tableau`)" } => "5 (résultat du tableau 1)"

\@ Mise en forme des valeurs de type Date et Heure

Pour cela on fournit une chaîne de caractères spécifiques codant un modèle de représentations visuel de la valeur (un masque/une image). Je conseille de prendre l'habitude de l'écrire entre guillemets même si ce n'est toujours obligatoire en réalité.

  • d (day) : Affichage le jour

Exemple :

{ DATE \@ "d" }    => "5"
{ DATE \@ "dd" }   => "05" (force lʼaffichage du 0 pour les 9 1ere valeur)
{ DATE \@ "ddd" }  => "sam."
{ DATE \@ "dddd" } => "samedi"

{ DATE \@ "dddd dd" } => "samedi 05"
  • M (Month) : Affiche le mois

Doit être en majuscules pour distinguer les mois et des minutes.

Exemple :

{ DATE \@ "M" }    => "9"
{ DATE \@ "MM" }   => "09" (force lʼaffichage du 0 pour les 9 1ere valeur)
{ DATE \@ "MMM" }  => "sept"
{ DATE \@ "MMMM" } => "septembre"
  • y (year) : Affiche l'année

Exemple :

{ DATE \@ "yy" }   => "03"
{ DATE \@ "yyyy" } => "2003"
  • h et H : Affiche l'heure (h sur 12h, H sur 24h)

Exemple :

{ DATE \@ "h" }  => "8"
{ DATE \@ "hh" } => "08"
{ DATE \@ "H" }  => "20"
{ DATE \@ "HH" } => "20"
  • m : Affiche les minutes (doit être en minuscule pour distinguer les minutes et les mois)

Exemple :

{ DATE \@ "m" }  => "8"
{ DATE \@ "mm" } => "08"
  • s : Affiche les secondes

Exemple :

{ DATE \@ "s" }  => "3"
{ DATE \@ "ss" } => "03"

Exemple de synthèse

{ DATE \@ "'Le' dddd dd MMMM yyyy 'à' HH:mm:ss" } => "Le lundi 03 mai 2026 à 17:05:27"
  • AM/PM : Affiche AM ou PM

pour fonctionner, le paragraphe doit être configuré dans une langue compatible (exemple : Anglais).

Exemple :

{ DATE \@ "h AM/PM" }  => "8 AM"

\! Verrouillage

Le champ INCLUDETEXT permet d'intégrer du texte externe provenant d'un fichier. Pas défaut, les champs présents dans le fichier seront mis à jour. Le commutateur \! permet d'empêcher Word de faire cette mise à jour.

Contrairement à ce que l'on peut trouver sur le web, \! ne semble pas fonctionnel pour les champs INCLUDEPICTURE et LINK (même via du publipostage).

Si vous avez des cas d'utilisation autres qu'avec le champ INCLUDETEXT ce serait sympa de laisser l'info en commentaire.

Autre solution de verrouillage qui elle fonctionne bien !

On utilise des raccourcis clavier :

  • Ctrl + F11 : Verrouiller le champ sélectionné,
  • Ctrl + Maj + F11 : Déverrouiller le champ sélectionné.

Attention : Il n’existe aucun signe visible dans Word indiquant qu’un champ est verrouillé par Ctrl+F11 !

Petite macro pour détecter ce verrouillage de champ

Sub MajChVerrouilles()
    ' Objectif    : Indiquer pour chaque champ verrouillé dans le corps du document cet état par un commentaire 
    ' Utilisation : Activer le document cible puis lancer la macro.
    ' Retour      : Néant.
    ' Auteur      : Arnaud (www.1forme.fr).
    ' Licence     : CC-BY-NC-SA (Vous pouvez diffuser/partager/modifier cette macro dans les
    '               même conditions, seulement à titre personnel et citant l'auteur/site d'origine.
    Dim objFld      As Field
    Dim objCmt      As Comment
    Dim BoHasCmt    As Boolean
    Dim RgFieldRg   As Range
    
    For Each objFld In ActiveDocument.Fields
            BoHasCmt = False
            ' On prend une plage qui couvre à la fois le code et le résultat
            Set RgFieldRg = objFld.Code
            RgFieldRg.End = objFld.Result.End
            
            For Each objCmt In ActiveDocument.Comments ' On parcourt tous les commentaires du document
                ' Si le commentaire recouvre (au moins en partie) la zone du champ
                If Not (objCmt.Scope.End < RgFieldRg.Start Or _
                        objCmt.Scope.Start > RgFieldRg.End) Then
                    ' Et que son texte contient "Champ verrouillé"
                    If InStr(1, objCmt.Range.Text, "Champ verrouillé", vbTextCompare) > 0 Then
                        BoHasCmt = True
                        Exit For
                    End If
                End If
            Next objCmt
            
            If BoHasCmt Then ' Commentaire "Champ verrouillé"
                If Not objFld.Locked Then objCmt.DeleteRecursively 'Si pas verrouillé on supprime le commentaire
                ' sur certaines versions de Word utiliser objCmt.Delete
            Else ' Aucun commentaire "Champ verrouillé"
                If objFld.Locked Then ActiveDocument.Comments.Add objFld.Code, "Champ verrouillé"
            End If
    Next objFld
    MsgBox "Fin de traitement", vbInformation
End Sub

Verrouillage définitif 😁

Le raccourci clavier Ctrl + Maj + F9 remplace le/les champ(s) sélectionné(s) par sa/leur valeur (pas de raccourci pour faire retour en arrière autre que la commande Annuler !).

Conclusions

Les champs Word constituent un outil de calcul et d’automatisation extrêmement ancien, puissant mais rempli d’incohérences historiques. Leur maîtrise repose autant sur la syntaxe officielle que sur la compréhension de leurs comportements réels et parfois non documentés. Les informations trouvées sur internet sont souvent fausses, contradictoires. Elles sont souvent qu'une simple recopie de l'aide officielle. Je vous souhaite donc bon courage dans leur mise en œuvre 😁.

Autres article sur ce sujet :

Merci pour votre attention bienveillante.

Article intéressant ?

Cliquez sur une étoile pour noter cet article !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Nous sommes désolés que cet article ne vous ait pas été utile !

Améliorons cet article !

Dites nous comment nous pouvons améliorer cet article ?

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *