2 couleurs de texte dans une même celulle

Fermé
glyceryna - Modifié par glyceryna le 2/05/2016 à 14:30
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 2 mai 2016 à 17:35
Bonjour,
Je dois afficher dans un fichier des résultats sur la forme suivante:
"20,35 / 23,22".
Cette cellule est le résultat d'une formule.
J'aimerai avoir le même résultat mais avec le premier chiffre en noir et le deuxième en gris.
1. Est-ce que c'est possible?
2. Est-ce que c'est possible sans passer par une macro?

En vous remerciant par avance
A voir également:

4 réponses

Bonmarchand Messages postés 15 Date d'inscription samedi 30 avril 2016 Statut Membre Dernière intervention 3 mai 2016
2 mai 2016 à 14:36
Bonjour pouvez-vous me communiquer votre formule pour voir la faisabilité.
Cordialement Marc
0
il s'agit de 2 fonctions de rechercheV:
=ARRONDI(RECHERCHEV($A15;'[SuiviPDM.xlsb]Données PDM DEPT'!$A$3:$DD$106;(ANNEE(E$8)-2010)*12+1+MOIS(E$8);FAUX);2)&" / "&ARRONDI(RECHERCHEV($A20;'[SuiviPDM.xlsb]Données PDM DEPT'!$A$3:$DD$106;(ANNEE(E$8)-2010)*12+1+MOIS(E$8);FAUX);2)

Merci d'avance
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 mai 2016 à 14:48
Bonjour,

1) Dans une même cellule, ce n'est pas possible avec le résultat d'une formule.
2) Par macro ce serait possible à condition de faire le calcul (la formule) par macro et de mettre uniquement le résultat dans la cellule.
0
Merci Patrice. C'est ce que j'avais constaté en regardant les forums.
Par contre je me demandais si c'est faisable par le format personnalisé car mes chiffres sont toujours de la même forme xx,xx / xx,xx.
Utiliser un type dans ce genre : # ##0\ _€;[Rouge]-# ##0\ _€ mais personnalisé un peu plus.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 mai 2016 à 15:04
Les 3 premières parties du format personnalisé s'appliquent au résultat numérique de l'opération, pour du texte c'est la quatrième partie qui est à définir, mais elle ne permet pas ce genre de format !
0
Merci Patrice.
Je fige mes valeurs via une VBA. Mais ensuite je ne sais pas faire apparaître la moitié du résultat en noir et l'autre moitié en gris.
Je ne suis pas très forte sur VBA et je te remercie par avance pour ton aide.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 2/05/2016 à 16:49
Bonjour

Comme dit Patrice (salut à toi au passage), uniquement par vba et les formules vont disparaitre
Un exemple
http://www.cjoint.com/c/FEcoVXjWReQ

Cdlmnt
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 mai 2016 à 17:11
Re,


Sur le même principe que ccm81 (bonjour à toi), mais plus détaillé, à mettre dans le module de la feuille :
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plagesource As Range
Dim formule As String
Dim longueur As Integer
  'Définir la plage des cellules influant sur le résultat
  'par exemple B1 et C1 pour la formule = B1 & " / " & C1
  Set plagesource = Union(Range("B1"), Range("C1"))
  'Si les cellules n'ont pas été modifiées : terminé
  If Intersect(Target, plagesource) Is Nothing Then Exit Sub
  'Définir la formule
  formule = "=B1 & "" / "" & C1"
  'Evaluer le résultat de la formule
  formule = Application.Evaluate(formule)
  'Calculer la longueur du premier nombre
  longueur = InStr(1, formule, " / ") - 1
  'Dans la cellule de destination :
  With Range("A1")
    '- mettre en place le nouveau résultat
    .Formula = formule
    With .Font
      '- effacer les 2 propriétés de police précédentes
      .ColorIndex = xlAutomatic
      .Bold = False
    End With
    '- mettre en Rouge et Gras le premier nombre
    With .Characters(Start:=1, Length:=longueur).Font
      .Color = RGB(255, 0, 0)  'Rouge
      .Bold = True             'Gras
    End With
  End With
End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 mai 2016 à 17:35
Je viens juste de voir ta formule, avec un lien vers des fichiers extérieurs, il est préférable d'utiliser l’évènement Calculate :
Option Explicit
Private Sub Worksheet_Calculate()
Dim plagesource As Range
Dim formule As String
Dim longueur As Integer
  
  'Définir la formule
  formule = "=ARRONDI(RECHERCHEV($A15;'[SuiviPDM.xlsb]Données" & _
            " PDM DEPT'!$A$3:$DD$106;(ANNEE(E$8)-2010)*12+1+" & _
            "MOIS(E$8);FAUX);2)&"" / ""&ARRONDI(RECHERCHEV" & _
            "($A20;'[SuiviPDM.xlsb]Données PDM DEPT'!$A$3:" & _
            "$DD$106;(ANNEE(E$8)-2010)*12+1+MOIS(E$8);FAUX);2"
  'Dans la cellule de destination :
  With Range("A1")
    '- mettre en place la formule
    .FormulaLocal = formule
    '- la remplacer par sa valeur
    .Value = .Value
    'Calculer la longueur du premier nombre
    longueur = InStr(1, .Value, " / ") - 1
    With .Font
      '- effacer les 2 propriétés de police précédentes
      .ColorIndex = xlAutomatic
      .Bold = False
    End With
    '- mettre en Rouge et Gras le premier nombre
    With .Characters(Start:=1, Length:=longueur).Font
      .Color = RGB(255, 0, 0)  'Rouge
      .Bold = True             'Gras
    End With
  End With
End Sub
0