Mettre en couleur nombres issu de concatener [Résolu]

Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
- - Dernière réponse : jc80
Messages postés
4278
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


Afficher la suite 

3 réponses

Messages postés
24590
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
4833
0
Merci
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

Commenter la réponse de Vaucluse
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1058
0
Merci
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
Vaucluse
Messages postés
24590
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
4833 -
Salut Jc, je n'avais pas percuté sur le demandeur... :-))
bonne journée aussi
crdlmnt
Commenter la réponse de jc80
Messages postés
22967
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
5707
0
Merci
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

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
eriiic
Messages postés
22967
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
5707 -
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
jc80
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1058 -
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.
eriiic
Messages postés
22967
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
5707 -
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
jc80
Messages postés
4278
Date d'inscription
mardi 5 février 2013
Statut
Membre
Dernière intervention
25 février 2019
1058 -
Re

merci pour le code
Fonctionne impeccable c'est ce qu'il me fallait.
Cordialement
Commenter la réponse de eriiic