Microsoft 365 Reporter le texte et sa couleur dans une autre cellule

viviepat

XLDnaute Nouveau
Bonjour,
je souhaiterais copier le texte d'une cellule de la feuille1 avec sa couleur de police dans la feuille "Progr REP."
J'ai réussi à recopier le texte avec tout bêtement un " =Feuil2!N39 " mais je n'arrive pas a faire suivre la couleur de la police.
En utilisant cette méthode j'avais des "0" qui apparaissaient sur les cellules recopier ce que j'ai résolu avec une forme conditionnelle →si =0 le texte sera en blanc.
je vous mets mon fichier en pièce jointe.
Petite précision, je suis complètement ignorant des macros donc si je dois passer par là, merci de me détailler la démarche.
En vous remerciant par avance
 

Pièces jointes

  • Fiche à 4 REP.PROD..xlsx
    23.2 KB · Affichages: 18
Solution
L'autre solution peut-être plus simple pour toi est de tout récupérer de la cellule source:
VB:
Function ContentAndFontColorFrom(Cellule As Range) As Variant
   'Copie la couleur du texte de la Cellule en paramètre dans la cellule qui appelle la fonction
   Application.Caller.Font.Color = Cellule.Font.Color
   ContentAndFontColorFrom = Cellule.Value
End Function
2020-11-13_080937.jpg

Dudu2

XLDnaute Barbatruc
Bonjour,
On ne peut pas faire venir des éléments de format d'une autre cellule par formule.
Il faut faire une fonction personnalisée, transformer le classeur .xlsx en .xslm à cause de la fonction personnalisée VBA nécessaire, puis, l'utiliser dans les formules. Comme elle retourne 0 tu peux l'utiliser en addition.
Par exemple:
2020-11-12_224038.jpg
 

Pièces jointes

  • Fiche à 4 REP.PROD..xlsm
    29 KB · Affichages: 4

viviepat

XLDnaute Nouveau
Bonjour,
Merci beaucoup pour ta réponse.
Pour la couleur pas de soucis mais j'ai des "#" qui apparaissent à la place des lettres quand j'étale la formule sur les côtés.

Aurais tu une solution pour ça ?
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    42.2 KB · Affichages: 6

patricktoulon

XLDnaute Barbatruc
bonjour
essaie donc "&" a la place de "+"
VB:
Function ColorFrom(Cellule As Range) As Variant
   'Copie la couleur du texte de la Cellule en paramètre dans la cellule qui appelle la fonction
   Application.Caller.Font.Color = Cellule.Font.Color
ColorFrom = Empty
End Function
 

Dudu2

XLDnaute Barbatruc
L'autre solution peut-être plus simple pour toi est de tout récupérer de la cellule source:
VB:
Function ContentAndFontColorFrom(Cellule As Range) As Variant
   'Copie la couleur du texte de la Cellule en paramètre dans la cellule qui appelle la fonction
   Application.Caller.Font.Color = Cellule.Font.Color
   ContentAndFontColorFrom = Cellule.Value
End Function
2020-11-13_080937.jpg
 

Pièces jointes

  • Fiche à 4 REP.PROD..xlsm
    29.2 KB · Affichages: 4

patricktoulon

XLDnaute Barbatruc
re
hoh moi j'aime bien l'astuce
j'ai essayé d'intégrer le background aussi mais là ça marche plus je n'en vois pas la raison
VB:
Option Explicit

Function ColorFrom(Cellule As Range, _
                   Optional font_color As Boolean = False, _
                   Optional back_color As Boolean = True) As Variant
'Copie la couleur du texte de la Cellule en paramètre dans la cellule qui appelle la fonction
    With Application.Caller
        If font_color Then .Font.Color = Cellule.Font.Color
        If back_color = True Then .Interior.Color = Cellule.Interior.Color
    End With
    ColorFrom = Empty
End Function

=AB9&colorfrom(AB9;1;1)
 
Haut Bas