Modifier la couleur d'une sous-chaîne de caractères
Bjr,
Je voudrais modifier la couleur d'une chaîne de caractères à l'intérieur d'une cellule.
Passer de :
Avant
Nom1: XXX Prenom1: Xxx
Sexe1: M Com1: époux
NomP1: XXX PrenomP1: Xp
NomM1: YYY PrenomM1: Yp
à
Après
Nom1: XXX Prenom1: Xxx
Sexe1: M Com1: époux
NomP1: XXX PrenomP1: Xp
NomM1: YYY PrenomM1: Yp
Chaque ligne ci-dessus représente 1 cellule unique.
Les constantes : Nom1, Prenom1, Sexe1, Com1, NomP1, PrenomP1, NomM1, PrenomM1 en bleu
Les réponses en gras
J'ai à chaque fois un fichier de 500 lignes à traiter.
Dans le fichier joint, il y a une macro faite en enregistrement automatique mais comme ce qui n'est pas en bleu est de longueur variable à chaque fois, ça ne fonctionne pas sur l'ensemble du fichier.
Je me doute qu'il doit falloir utiliser
Mid et
InStrmais je ne vois pas comment faire.
Il me semble qu'il faut d'abord sélectionner les 4 lignes et les passer en gras
puis ligne par ligne
passer les constantes en bleu, non-gras.
Mais je fais peut-être fausse route.
Merci de vos lumières.
Bonjour Conil26
Tu n'as pas besoin de faire le traitement comme tu penses, voici le fichier avec le code
A+
C'est exactement ce qu'il me fallait.
Dans sub couleur2, j'ai simplifié
- la mise en forme des occurrences
With Rng.Characters(Start:=1, Length:=NbCar).Font
.Name = "Calibri"
.FontStyle = "Normal"
.Size = 12
.ColorIndex = 5
End With- Ajouté 2 lignes pour : - supprimer les espaces doubles et enregistrer la cellule de travail "propre"
Set Rng = Sht.Range("C" & Lig)
' Récupérer le texte pour travailler dessus
' Supprimer les espaces doubles partout
sTmp = Application.Trim(Rng.Value)
' Modifier la cellule de travail "propre"
Rng.Value = sTmp- Modifié la recherche de la 2° occurrence pour que le 2° : soit aussi coloré
NbCar = InStr(Pos, sTmp, " ") - Posau lieu de
NbCar = InStr(Pos, sTmp, ": ") - PosTrès efficace.
Merci