mettre un mot ou une série de mots en couleur automatiquement dans un cellule Excel

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 !

obelix77

XLDnaute Junior
Bonjour,

Tout est dans le titre.

J’ai besoin que des mots ou des séries de mots spécifiques se mettent en couleur dans une cellule ou une plage de cellules.
Il faut que les seuls mots ou séries de mots voulus soient en couleur; pas toute la cellule; ça, je sais le faire

Dans l'idéal, je souhaiterais mettre en place une macro qui travaillerait sur la cellule ou la plage de cellules sélectionnées.

La macro doit ouvrir une fenêtre à cases multiples :
1 case contenant « texte voulu 1 » suivi d’une case contenant le « code couleur » souhaité
1 case contenant « texte voulu 2 » suivi d’une case contenant le « code couleur » souhaité
1 case contenant « texte voulu 3 » suivi d’une case contenant le « code couleur » souhaité

Les textes doivent pouvoirs commencer et/ou terminer par "*".

Pas de respect de la « CASSE » sur les textes.

Petit problème : je ne maîtrise pas du tout le VBA ... Donc si une âme charitable peut m'aider, ce serait le top.

Ci-joint un fichier dans lequel j’ai simulé le résultat attendu.

Merci et bon week-end
 
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Bonjour obelix77 et bienvenue sur XLD 🙂,

[...] Ci-joint un fichier dans lequel j’ai simulé le résultat attendu. [...]

Comme Obélix quand il fut tout petit, le fichier a dû choir au fond de la marmite 😀

[...] Les textes doivent pouvoirs commencer et/ou terminer par "*". [...]
obelix77 reste cohérent puisqu'il autorise les astérix...
 
Dernière édition:
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Bonjour obelix77 et bienvenue sur XLD 🙂,



Comme Obélix quand il était tout petit, le fichier a dû choir au fond de la marmite 😀

Oups, ... Désolé. Je suis nouveau sur le site et j'ai du raté une case

Je le joins et j'espère que, ce coup-ci, j'ai bon😛
 

Pièces jointes

Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Ca marche nickel pour avoir le gras
Par contre, je ne sais pas comment faire pour avoir des codes couleurs à la place du gras, avec choix sur le code couleur.
Une idée?
PS : je n'y connais rien au VBA 😕
 
Dernière édition:
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Et bien il aura fallu moins de 24 heures pour que j'obtienne exactement ce que j'attendais.
Ce forum, est au top.
Un grand merci à tous et à mapomme en particulier
bon dimanche à tous
😉😉😉😉😉😉😉😉😉😉😉
 
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Au risque de passer pour un débile ....

Tout fonctionne exactement comme voulu dans le fichier fourni par "mapomme" mais comment je dois procéder pour que ça fonctionne dans tous mes fichiers Excel?
Comment je fais pour utiliser ou non la macro dans un fichier quelconque?

J'ai enregistré le classeur en "*.xlam" puis j'ai coché le fichier dans les compléments.
La macro n’apparaît pas dans la liste des macros et je ne sais pas comment la lancer.

Serait il possible de déclencher la macro par une commande plutôt que par un double clic? Et qu'elle fonctionne aussi sur une plage de cellule. J'ai l'impression qu'elle ne fonctionne que sur une seule cellule.


Désolé de vous solliciter à nouveau.

Je sais, je suis pas trop au top, question macro

Bon dimanche
 
Dernière modification par un modérateur:
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Bonjour,
un essai :
Code:
Sub CoulCharactere()
Dim oRegExp As Object, oMatches As Object, R As Object
Dim Tmot(), Tcoul(), C As Range
Dim Motif As String, i As Long, Chaine As String

With Cells(1, 1): Chaine = .Text: .Font.ColorIndex = xlAutomatic: End With
Set R = Range("A3:A5")
ReDim Tmot(1 To R.Rows.Count): ReDim Tcoul(1 To R.Rows.Count)

For Each C In R
  i = i + 1
  Tmot(i) = C.Text
  Tcoul(i) = C.Font.Color
  Motif = Motif & C.Text & "|"
Next C

Motif = "(" & Left(Motif, Len(Motif) - 1) & ")"

Set oRegExp = CreateObject("vbscript.regexp")
With oRegExp
    .Global = True
    .ignorecase = True
    .Pattern = Motif
    If .test(Chaine) Then
      Set oMatches = .Execute(Chaine)
      For i = 0 To oMatches.Count - 1
        Cells(1, 1).Characters(Start:=oMatches(i).firstindex + 1, _
        Length:=oMatches(i).Length + 1).Font.Color = Application.Index(Tcoul, Application.Match(oMatches(i).Value, Tmot, 0))
      Next i
    End If
End With
End Sub
On peut éventuellement ne pas ignorer la casse en passant IgnoreCase à False.
Pour modifier les couleurs de police dans la macro : modifier la couleur de police du mot.
A+
 

Pièces jointes

Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

Ca marche bien aussi cette solution.

J'ai l'impression que ça ne marche que si le texte est en cellule A1 et que les textes à colorisés sont dans les cellules A3, A4 et A5

Comment faire pour que :
ça marche sur une plage de cellule dynamique? En clair sur une sélection de cellules?
que les textes à colorisés puissent être ailleurs que dans les cellules A3, A4 et A5? On pourrait mettre les textes et les couleurs dans une plage nommée non?

En trous les cas, merci, c'est top

Bonne soirée,
 
Re : mettre un mot ou une série de mots en couleur automatiquement dans un cellule Ex

On peut faire plein de choses mais c'est quand même à toi de construire le fichier que tu as en tête et à partir duquel on peut tester.
A+
 
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
3
Affichages
582
Retour