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

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

  • Signe en Couleur(4).xlsm
    23.5 KB · Affichages: 28

job75

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
Re,

Avec ce fichier (5) toute modification du suffixe en H8 est répercutée immédiatement en B8.

suf est déclarée As Range et la variable memsuf récupère le suffixe précédent.

A+
 

Pièces jointes

  • Signe en Couleur(5).xlsm
    29.8 KB · Affichages: 24
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
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 ?
 

Magic_Doctor

XLDnaute Barbatruc
¡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+
 

Magic_Doctor

XLDnaute Barbatruc
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

  • Signe en Couleur 2.xlsm
    20.1 KB · Affichages: 19

job75

XLDnaute Barbatruc
Bonjour Magic_Doctor,

Ton fichier en retour.

Tu faisais une erreur grossière en écrivant (inutilement) Target = Round(Target, 2)

Par ailleurs l'intérêt de With [B8] c'est d'écrire [B8] une seule fois.

D'où .Cells plutôt que [B8].

A+
 

Pièces jointes

  • Signe en Couleur 2(1).xlsm
    26.2 KB · Affichages: 19

Magic_Doctor

XLDnaute Barbatruc
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

  • Signe en Couleur (3').xlsm
    27.1 KB · Affichages: 21

job75

XLDnaute Barbatruc
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

  • Signe en Couleur(6).xlsm
    30 KB · Affichages: 21

Statistiques des forums

Discussions
312 895
Messages
2 093 383
Membres
105 714
dernier inscrit
POKITO