Certains mot change de couleur automatiquement

Bonjour à toutes et à tous,

Voilà je vous explique ma problématique, je ne sais pas si la manipulation est possible mais je tente ma chance sur ce forum en éspérant trouver une aide.

J'ai Excel 2003, et lorsque j'écris dans des cellules, j'aimerais que certains mots clefs possèdent un code couleur.

J'ai réussis à faire une macro mais je ne peux l'activer seulement si la cellule est vide, je ne peux pas écrire une phrase par exemple et tapper mon raccourcis pour afficher le mot avec la couleur correspondante.

y'a t'il une possibilité de coloriser certains mots automatiquement seulement en l'écrivant dans une phrase ?

merci pour vos réponses

Bonjour,

exxaye ceci, à placer dans le module de la feuille concernée, click droit sur l'onglet => visualiser le code => tu le colles... A noter ici, le mot recherché est "lemot", le 5 en rouge représente le nombre de caractères de ce mot, à adapter selon la recherche effectuée...

With Target.Characters(InStr(Target, "lemot"),5).Font

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) Like "*lemot*" Then
    With Target.Characters(InStr(Target, "lemot"),5).Font
        .ColorIndex = 3
        .Bold = True
    End With
End If
End Sub

bonne soirée

@+

super merci pierrot, je vais testé ça dessuite

-- 10 Fév 2011, 20:20 --

C'est impécable, merci beaucoup ça fonctionne mais comment peut on faire pour que cela fonctionne sur toutes les feuilles et sur chaque document excel ?

Bonjour,

pour que cela fonctionne dans toutels les feuilles du claseur, code à placer dans le module "thisworkbook" :

Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) Like "*lemot*" Then
    With Target.Characters(InStr(Target, "lemot"), 5).Font
        .ColorIndex = 3
        .Bold = True
    End With
End If
End Sub

pour que cela fonctionne dans tous les classeurs, il faudrait placer le code dans une macro complémentaire, en utilisant un module de classe....

bonne fin d'après midi

@+

Bonsoir,

Je travaille actuellement sur un fichier Excel, sans aucune expérience.

(Mais j'ai réussi après nombreuses recherches à faire certaines choses et grâce à des passionés également.

SVP aidez-moi, j'ai suivi vos conseils :

Sub GrasOri()
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) Like "*ORI*" Then
    With Target.Characters(InStr(Target, "*ORI*"), 3).Font
        .ColorIndex = 3
        .Bold = True
    End With
End If
End Sub

Il met met instruction incorrecte dans une procédure.

Et je le veux seulement pour une cellule ?

Quelqu'un pourrait m'aider svp ?????

D'ailleurs, je n'ai pas compris ces lignes :

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

Merci beaucoup d'avance.

Bonjour et bienvenu(e)

Ton fichier serait bien utile

Sinon il faut supprimer la 1ère ligne

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If LCase(Target.Value) Like "*ORI*" Then
    With Target.Characters(InStr(Target, "*ORI*"), 3).Font
      .ColorIndex = 3
      .Bold = True
    End With
  End If
End Sub

Cette macro est à copier dans le module de la feuille concernée (clic droit sur l'onglet de la feuille --> Visualiser le code)

Merci Banzai pour votre aide.

J'ai essayé mais ça me fait une ligne comme s'il manquait quelque chose au dessus du code.

Le fichier étant confidentiel (pour le travail), j'ai recopié sur un autre fichier.

capture d'écran sur ce lien :

au cas où !

Merci encore

Bonsoir

Styla27 a écrit :

J'ai essayé mais ça me fait une ligne comme s'il manquait quelque chose au dessus du code.

Pas important : tu peux supprimer la ligne au dessus (mais inutile)

Ton code : Il ne remplace qu'une seule fois le mot ORI

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  If UCase(Target.Value) Like "*ORI*" Then
    With Target.Characters(InStr(1, Target, "ORI", vbTextCompare), 3).Font
      .ColorIndex = 3
      .Bold = True
    End With
  End If
End Sub

Ce code remplacera toutes les occurrences de ORI dans la cellule

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Pos As Integer
  If Target.Count > 1 Then Exit Sub
  If UCase(Target.Value) Like "*ORI*" Then
    Do
      Pos = InStr(Pos + 1, Target, "ORI", vbTextCompare)
      If Pos > 0 Then
        With Target.Characters(Pos, 3).Font
          .ColorIndex = 3
          .Bold = True
        End With
      Else
        Exit Do
      End If
    Loop
  End If
End Sub

Attention c'est soit l'un soit l'autre : Ne copie pas les deux codes dans le module de la feuille

Bonjour Banzai,

Merci pour votre aide mais avec le nouveau code que vous m'aviez donné, il m'a carrément tout mis en rouge et en gras dans ma cellule.

Alors que j'aimerais la mise en forme juste pour les mots commençant par ORI, comme ORI2, ORI90, ORI156 etc.

Je ne sais pas si vous avez regardé mon fichier, mais il y a plusieurs valeurs ORI dans ma cellule.

Bonjour

Je l'ai au minimum testé

Et ce code change bien les "ORI"

Fournis le fichier en cause

Désolée, je ne pensais pas que ce serait nécessaire, mais je comprends la demande

Bonjour

Je ne comprends pas trop le problème

Résultat obtenu avec le fichier que tu as envoyé

coloriage mots

Ah bon, bah merci quand même Banzai. ça doit être mon logiciel ou mon ordi qui n'est pas compatible avec ce code. Tant pis pour moi, je me débrouillerai autrement. Merci encore

Rechercher des sujets similaires à "certains mot change couleur automatiquement"