XL 2010 Précéder un chiffre d'un signe COLORÉ suivant sa valeur (bis)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Bonsoir job, le forum,

Pourquoi bis ? Parce qu'il m'a été impossible d'accéder à la 2ème page du fil originel... Problèmes depuis la nouvelle mouture d'Excel Downloads, ou problème dans mon PC ???

job, je viens d'apprécier ta dernière routine.
C'est parfait !
En revanche, je n'ai pas pu convertir la chaîne en chiffre avec ta solution du post #5.
J'y suis parvenu au moyen d'une fonction du forum.
Concernant le contraste pour le signe "-", je pense avoir réglé le problème grâce à une astuce que l'on m'avait communiquée, toujours sur ce forum.
Enfin, j'ai rajouté un paramétrage, celui du suffixe.

Merci pour ton aide, le résultat est pas mal... pour ceux qui apprécient les couleurs !

A+
 

Pièces jointes

Bonjour Magic_Doctor, le forum,

Pour la conversion numérique ceci est bien simple :
Code:
'---
    [B10] = Replace(Replace([B8], suf, ""), ",", ".") 'conversion numérique de la chaîne
B10 doit être bien sûr au format Standard et pas au format Texte...

Tu as fait aussi aussi une petite erreur :
Code:
'---
      If t = "0" Or t = "" Then
        .Value = 0 & suf
Edit : le lien du fil d'origine :

http://www.excel-downloads.com/threads/précéder-un-chiffre-dun-signe-colorÉ-suivant-sa-valeur.20010596/

Pourquoi parles-tu de 2ème page, il n'y a qu'une page ?

Bonne journée.
 
Dernière édition:
Bonjour job, le forum,

Il y avait bien 2 feuilles. Du reste, souviens-toi, quand je t'avais dit que ta dernière routine était moins polyvalente que les 2 précédentes, tu m'avais répondu que la dernière était pour le fun.
Où sont donc passés nos derniers posts ?
 
¡La puta que lo parió! je me suis chopé l'Allemand...
Bon, avant d'aller à l'IRM, mettons ça sur le compte de l'étourderie. Car la meilleure rémission, c'est l'optimisme et surtout d'éviter le diagnostic !
Ô combien d'individus vont, après tout, bien... jusqu'à ce qu'on leur fasse un diagnostic...

Bossant sur 2 fils en même temps... il y a eu confusion.

Quoi qu'il en soit, j'avais bien vu ton post #3. Ça marche très bien. J'ai même fait quelques tentatives (sans succès...) afin de transformer ta routine en une fonction (j'aime bien les fonctions) que l'on pourrait tout simplement appeler. Mais est-ce possible ?

A+
 
Bonjour job, le forum,

J'ai adapté ta routine à ma macro. L'exemple que nous utilisions, et qui fonctionne très bien, est très général. Dans ma macro événementielle, les choses sont plus simples quant aux paramétrages, puisque le nombre de décimales après la virgule sera toujours de 2, et le suffixe, lui, sera toujours " %".
Mon adaptation a l'air de bien marcher, sauf en ce qui concerne la conversion de la chaîne en chiffre ; la virgule n'apparaît pas. Où me suis-je encore planté ? À noter que le texte converti en valeur numérique n'apparaîtra jamais dans la feuille ; ce chiffre est utilisé uniquement au niveau des macros. Je précise ceci en raison du problème intemporel qu'ont les Anglo-Saxons avec les notations, mesures, etc.
 

Pièces jointes

Bonsoir job, le forum,

Merci pour ces explications.
Effectivement, Target = Round(Target, 2) était superfétatoire. J'avais omis de le supprimer ici, vu que toutes les saisies de la feuille sont gérées par ce truc-là, afin d'imposer un nombre maximal de décimales (qui n'est pas forcément 2, suivant les cas) après la virgule.
Pour une (ou des...) raison que je ne m'explique pas, la conversion de la chaîne en valeur numérique ne marche pas dans mon projet. J'ai donc dû trouver une alternative (à vrai dire simple).
Enfin, pour aller un peu plus loin dans le fun (puisqu'on est là pour le fun après tout !), j'ai un peu compliqué les choses en permettant de pouvoir obtenir une chaîne avec toujours le même nombre de décimales après la virgule, ce nombre étant complété, s'il le faut, par des "0". je m'explique :
On veut 3 décimales après la virgule : 13,2 --> + 13,200 %
Ma foi, cela peut toujours être utile pour les psychorigides de l'alignement à droite qui, dans une colonne, donne un résultat visuel plus parlant.
Je ne doute pas que l'on peut simplifier tout ça.
 

Pièces jointes

Bonsoir Magic_Doctor,
On veut 3 décimales après la virgule : 13,2 --> + 13,200 %
Fichier (6) avec ce complément :
Code:
 '---
      '---ajout de zéros pour obtenir le nombre exact de décimales---
      If Decim Then
        n = InStr(t, Mid(0.1, 2, 1)) 'position du séparateur décimal
        If n Then
          If Len(Mid(t, n + 1)) < Decim Then t = t & String(Decim - Len(Mid(t, n + 1)), "0")
        Else
          t = t & Mid(0.1, 2, 1) & String(Decim, "0")
        End If
      End If
Ce n'est toujours que du traitement de texte.

Bonne nuit.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour