2 couleurs de texte dans une même celulle
glyceryna
-
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
Patrice33740 Messages postés 8400 Date d'inscription Statut Membre Dernière intervention -
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
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
4 réponses
-
Bonjour pouvez-vous me communiquer votre formule pour voir la faisabilité.
Cordialement Marc -
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. -
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 -
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-
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
-