Colorer automatiquement ses cellules à partir d'un tableau avec du texte

On va apprendre à appliquer une mise en forme conditionnelle dans Excel même lorsque les données contiennent du texte, ici avec des nombres entre parenthèses. Une méthode simple avec les fonctions modernes TEXTE.APRES(), TEXTE.AVANT() et SUBSTITUE() pour gagner en clarté et en productivité.

Voici le fichier.

Le problème

Dans Excel, tout va bien… jusqu’à ce que les données deviennent un peu “sales”.
On veut colorer des cellules selon leur valeur, mais elles ressemblent à ça :

Texte (50) et le résultat final est (29)

Excel, lui, ne comprend pas : il voit du texte, pas un nombre.
Résultat : la mise en forme conditionnelle ne fonctionne pas.


L’approche

Avant de colorier, on doit d’abord isoler le nombre.
L’idée, c’est de découper le problème en deux étapes :

  1. Extraire la partie numérique du texte, ici, on veut la dernière valeur entre parenthèses.
  2. La convertir pour qu’Excel la reconnaisse comme une valeur.

Cette approche permet de travailler proprement et d’éviter les erreurs de formatage.


Les fonctions-clés à utiliser

Excel 365 propose aujourd’hui des fonctions très puissantes pour manipuler du texte.
Voici les trois incontournables :

  • TEXTE.APRES() ? extrait ce qui se trouve après un délimiteur (ici, la parenthèse ouvrante).

Astuce : en ajoutant -1 à TEXTE.APRES(), on récupère le dernier élément trouvé, parfait pour des textes pouvant contenir des parenthèses.

Et ensuite, au choix:

  • TEXTE.AVANT() ? récupère ce qui se trouve avant un délimiteur (la parenthèse fermante après extraction avec TEXTE.APRES).
  • SUBSTITUE() ? supprime les caractères inutiles du texte, par exemple, la ")". Déjà présent dans les anciennes versions d'Excel.

Enfin, on multiplie le résultat par 1 pour forcer Excel à interpréter le texte comme un nombre :

=(1*TEXTE.AVANT(TEXTE.APRES(E2;"(";-1);")"))>=$C$4

ou alors

=(1*SUBSTITUE(TEXTE.APRES(E2;"(";-1);")";""))<$C$3

La mise en forme conditionnelle

Une fois la valeur numérique extraite, on peut appliquer une mise en forme conditionnelle classique suivante.

Le reste des cellules est colorié en orange. On aurait aussi pu ajouter encore une autre condition, mais dans ce cas, ca n'est pas nécessaire.


Le résultat

Le tableau devient clair, visuel et dynamique, sans macro ni formule complexe.
Même quand les données ne sont pas parfaites, Excel fait le job proprement.

Bonus, cette approche va aussi fonctionner:

=PRENDRE(FRACTIONNER.TEXTE(A1;;{"(";")"};VRAI);-1)

Pour marque-pages : Permaliens.

Laisser un commentaire

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


La période de vérification reCAPTCHA a expiré. Veuillez recharger la page.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.