XL 2010 Colorier un mot

  • Initiateur de la discussion Initiateur de la discussion Foie4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Foie4

XLDnaute Junior
Bonjour à tous,
Je n'arrive pas à trouver sur ce forum ou ailleurs comment
colorier simplement (sans VBA macro) un mot dans une phrase.
par exemple chocolat en rouge, vacances en vert etc...
merci
 

Pièces jointes

Bonjour à tous, job, Foie,
Je me demande à quoi va servir ta demande compte tenu que celle-ci demande de tenir compte de la position différente et du nom différent des mots colorés !
De fait, cette demande qui me parait insurmontable même en VBA
Bon courage !
Bonne journée !
 
Bonsour®
Bonjour à tous,
Je n'arrive pas à trouver sur ce forum ou ailleurs comment
colorier simplement (sans VBA macro) un mot dans une phrase.
par exemple chocolat en rouge, vacances en vert etc...
merci
sans VBA ... impossible !
une formule renvoie une valeur mais ne change pas, le style ou aspect de la donnée.

en VBA il faudrait d'abord définir une liste exhaustive des mots à considérer...
sinon cela s'appelle de la divination 😎
 
Dernière édition:
Bonsoir le fil

[aparté]
Bonsour®
sans VBA ... impossible !
une formule renvoie une valeur mais ne change pas, le style ou aspect de la donnée.
Une formule classique, non...
VB:
Sub test()
Range("A1:A4") = Application.Transpose(Array(1, 2, 3, 4))
[A6].Formula = "=UDF_SUM(A1:A4)"
End Sub

Public Function UDF_SUM(v As Variant)
'Jon Peltier
  If TypeName(v) = "Range" Then
    Debug.Print v.Address
    v.Font.Color = vbRed ' not supposed to, but does
    v = v.Value
  End If
  Dim i As Long, j As Long
  For i = LBound(v, 1) To UBound(v, 1)
    For j = LBound(v, 2) To UBound(v, 2)
      UDF_SUM = UDF_SUM + v(i, j)
    Next
  Next
  Application.Caller.Font.Color = vbBlue ' not supposed to, but does
End Function
[/aparté]
 
De fait, cette demande qui me parait insurmontable même en VBA
Bah voyez le fichier joint et cette macro :
VB:
Sub Colorier()
Dim P As Range, c1 As Range, coul&, L%, c2 As Range, i%, j%
Application.ScreenUpdating = False
Set P = [A1].CurrentRegion.Offset(1) 'évite l'en-tête
P.Font.ColorIndex = xlAutomatic 'RAZ
P.Font.Bold = False 'RAZ
For Each c1 In [D2:D4]
    coul = c1.Characters(1, 1).Font.Color
    L = Len(c1)
    For Each c2 In P
        i = 1
        Do
            j = InStr(i, c2, c1)
            If j Then
                c2.Characters(j, L).Font.Color = coul
                c2.Characters(j, L).Font.Bold = True 'gras
                i = j + L
            End If
        Loop While j
Next c2, c1
End Sub
 

Pièces jointes

Bah voyez le fichier joint et cette macro :
Bonsoir tous, Job
Désolé il n'a pas été précisé par Foie4 qu'il y avait une colonne D avec les mots à colorier ( d'ailleurs je n'en vois pas l'utilité pour cette demande) !
En effet, Il est plus facile de colorier à la main la colonne A que d'inscrire les mots dans une autre colonne !
De fait, avec une seconde colonne representant les mots coloriés, VBA évidemment peut faire le nécessaire comme tu l'as fait !
Bonne soirée à tous !
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
621
Réponses
12
Affichages
282
Réponses
3
Affichages
368
  • Question Question
Réponses
6
Affichages
318
Retour