MFC sur une partie du Texte d'une cellule + Transfère ds Tableau
Bonjour,
me revoilà avec mon projet qui avance :-)
L'avant dernière fois, mon problème a été résolu ds le post
Concatener valeur d'un colonne sur chaque ligne en fonction de 2 critères
J'aimerais savoir s'il serait possible suite à cette formule d'avoir une MFC qui m'afficherait en texte rouge la partie du Texte renseignée en Value si ds la colonne Active=0.
Donc dans la colonne "AllValue" se trouve la formule qui concatène suivant des conditions. Et dans la colonne que j'ai appelée "Résultat Désiré pour AllValue avec MFC" j'ai mis le résultat tel que je l'aimerais dans AllValue (donc le texte en rouge)
Il y a je pense déjà la difficulté de savoir si on peut faire un MFC sur une partie du contenu d'une cellule mais en plus on ne peut pas se dire de "trouver" la valeur de "Value" dans "AllValue" pour la remplacer par du rouge car dans la colonne active=0 car sur une autre ligne du même Site/Brands il y a aussi la valeur 15.00 qui est en active Zero...
Je joins mon fichier dans lequel j'ai mis des notes.
Ensuite, dans le deuxième onglet se trouve un tableau que je génère par ce que j'appelle PowerBI/Power Query mais je pense que je n'utilise pas le bon terme (c'est interne à Excel 365 dans Obtenir des données à partir d'un tableau ), j'aimerais que suite à mon groupement, la colonne que j'ai appelée "RésultatClean" m'affiche la même MFC.
J'ai essayé de compléter au mieux mon Tableau afin d'essayer ensuite s'il y a solution de reproduire dans mon "Vrai" fichier plus complexe encore lol.
J'espère qu'il y aura pas trop de VBA/DAX mais bon suis ouvert à tout et surtout à la bienveillance de ceux qui voudront bien essayer de me comprendre.
Bien à vous
EDIT 14/04/23 9h54: Suppression d'une "mention" pas la bienvenue.
Bonjour,
À ma connaissance il est impossible de colorer en deux couleurs un résultat de fonction. Mais je peux te proposer une solution en conservant ta colonne W et en masquant la V. avec la marcro suivante :
Sub Colorisation()
Application.CutCopyMode = False
Range(Range("W2"), Range("W2").End(xlDown)).Font.ColorIndex = xlAutomatic
Dim nbL, nbCurL, index, curName
nbL = Range("G2").End(xlDown).Row
nbCurL = 0
index = 1
curName = ""
For i = 2 To nbL
Range("W" & i).Value = Range("V" & i)
If curName = Range("F" & i) Then
nbCurL = nbCurL + 1
Range("W" & i - 1).Copy
Range("W" & i).PasteSpecial
Else
curName = Range("F" & i)
index = 0
nbCurL = 0
End If
If Range("S" & i) = 0 Then
Range("W" & i).Characters(Start:=index + 1, Length:=Len(Range("G" & i))).Font.Color = -16776961
Range("W" & i).Copy
For j = 1 To nbCurL
Range("W" & i - j).PasteSpecial
Next j
End If
index = index + Len(Range("G" & i)) + 1
Next i
End Subà noter que pour que ça fonctionne les ProductName doivent être triés et les value dans le même ordre que dans AllValue.
Cordialement
Bonjour Chbouli04, à tous,
Tout d'abord, merci pour d'avoir pris le temps pour essayer de résoudre mon souci :-) et la solution proposée.
Même si celle-ci ne pourra être appliquée à chaque fois car mes données ne seront pas toujours triées :-( cela a le mérite de fonctionner !
D'ailleurs votre idée de cacher une colonne m'a permis de réfléchir d'une autre manière à mon but final :-) et ainsi arriver à ce que je voulais enfin presque car je butte sur autre chose :-) )
J'avais pensé aussi aller vers ce type de formule
=SUBSTITUE(SUBSTITUE(CONCATENER("<font color=red>"; [@Value]; "</font>"); [@AllValue]; CONCATENER("<font color=red>"; [@AllValue]; "</font>")); "/"; "/")Mais je suis arrivé à rien -> Je mets en résolu et m'attaque à l'autre chose sur laquelle je me casse un peu les dents; position d'un segment de Tableau suivant colonne masquée ou pas et surtout qui reste présente malgré un tri du tableau :-) )
Merci encore pour votre solution et patience.