Mettre en couleur nombres issu de concatener

Résolu/Fermé
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 - 12 nov. 2018 à 10:55
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 - 12 nov. 2018 à 17:08
Bonjour,

Dans le fichier ci-joint je voudrais mettre en couleur les nombres dans les cellules issues de concatener.
J'ai cherché mais j'ai pas trouvé
https://www.cjoint.com/c/HKmj2Etjig7
Merci pour votre aide
Cordialement


A voir également:

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
12 nov. 2018 à 11:00
Bonjour
si c'est pour avoir deux couleurs de police différentes dans la cellule, ce n'est pas possible avec les outils classiques d'Excel. Peut être en VBA, si quelqu'un peut vous le proposer
Bonne chance
crdlmnt

0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
12 nov. 2018 à 11:02
Bonjour Vaucluse
Merci pour la réponse c'est ce que je pensais,dans les forums pas trouvé
de réponse.
Bonne journée
Crdlt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
12 nov. 2018 à 11:18
Salut Jc, je n'avais pas percuté sur le demandeur... :-))
bonne journée aussi
crdlmnt
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié le 12 nov. 2018 à 12:16
Bonjour,

si c'est issu d'une formule on ne peut pas, même en vba.
Il faudrait au passage coller la valeur, quitte à la calculer si ta formule est intangible.
Jouable ?
Si oui Feuil2!H:I sont bien des saisies et non des formules ?
Couleur imposée ou à récupérer dans une cellule ? Laquelle ? Ca pourrait être sur le titre en H1.
eric

0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
Modifié le 12 nov. 2018 à 12:50
Bon, pas assez rapide pour moi ;-)
Je considère que ce sont bien des saisies en Feuil2.
A mettre dans module Feuil2 :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pl As Range, c As Range, couleur As Long
    Set pl = Intersect(Target, [H:I])
    If Not pl Is Nothing Then
        Set pl = Intersect(Columns("H"), Union(pl, pl.Offset(, -1)))
        For Each c In pl
            If c.Row > 1 Then
                couleur = IIf(c.Font.Color = 0, Cells(1, "H").Font.Color, c.Font.Color)
                With Sheets("Feuil1")
                    .Cells(c.Row, "D").Value = Format(c, "00") & "-" & c.Offset(, 1)
                    .Cells(c.Row, "D").Characters(Start:=1, Length:=2).Font.Color = couleur
                End With
            End If
        Next c
    End If
End Sub

Si le nombre en H est en couleur, elle est récupérée, sinon c'est la couleur de H1 qui est prise (couleur Font).
eric

PS : la maj se fait sur validation en H ou I
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
12 nov. 2018 à 13:56
Bonjour Eriiic
Merci pour ton code.
Celui-ci fonctionne bien si je retape les prénoms existants,
par contre si j'ajoute des prénoms, les prénoms et les nombres se mettent en couleurs
je souhaiterais que seul les nombres se colorent.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
12 nov. 2018 à 16:10
Ah oui tiens.
Du fait que le 1er caractère est déjà en couleur, vba considère ensuite que c'est pour la totalité de la cellule.
J'en profite pour corriger une autre anomalie potentielle si tu ne saisis que H :
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pl As Range, c As Range, couleur As Long
    Set pl = Intersect(Target, [H:I])
    If Not pl Is Nothing Then
        Set pl = Intersect(Columns("H"), Union(pl, pl.Offset(, -1)))
        For Each c In pl
            If c.Row > 1 Then
                couleur = IIf(c.Font.Color = 0, Cells(1, "H").Font.Color, c.Font.Color)
                With Sheets("Feuil1")
                    .Cells(c.Row, "D").Font.Color = 0
                    .Cells(c.Row, "D").Value = Format(c, "00") & "-" & c.Offset(, 1)
                    If c <> "" Then .Cells(c.Row, "D").Characters(Start:=1, Length:=2).Font.Color = couleur
                End With
            End If
        Next c
    End If
End Sub

eric
0
jc80 Messages postés 4149 Date d'inscription mardi 5 février 2013 Statut Membre Dernière intervention 25 février 2019 1 422
12 nov. 2018 à 17:08
Re

merci pour le code
Fonctionne impeccable c'est ce qu'il me fallait.
Cordialement
0