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

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
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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 :D

[...] Les textes doivent pouvoirs commencer et/ou terminer par "*". [...]
obelix77 reste cohérent puisqu'il autorise les astérix...
 
Dernière édition:

obelix77

XLDnaute Junior
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 :D

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:p
 

Pièces jointes

  • mots_couleur_automatique_cellule_Excel.xlsx
    10.6 KB · Affichages: 63

obelix77

XLDnaute Junior
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 :confused:
 

obelix77

XLDnaute Junior
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
;););););););););););)
 

obelix77

XLDnaute Junior
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:

david84

XLDnaute Barbatruc
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

  • mots_couleur_automatique.xlsm
    22.7 KB · Affichages: 44

obelix77

XLDnaute Junior
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,
 

david84

XLDnaute Barbatruc
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:

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 184
Membres
112 678
dernier inscrit
arno12345678