Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Change la couleur d'une partie du texte d'une cellule

Hak42

XLDnaute Nouveau
Bonjour, J'aurais besoin de votre aide pour le problème suivant:

Dans la cellule "Q6" que j'ai nommé "OBSERVATIONS", on peut trouver une ou plusieurs lignes,(Alt + enttrée) numérotées de 1 à x en fonction du nombre d'observations.

A l'origine l'ensemble du texte est de couleur rouge. j'aimerais créé une macro qui me permette, lorsque je lève une observation d'indiquer dans une inputbox le numéro de l'observation levée et de modifier toute la ligne en vert.

Merci d'avance pour votre aide
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Un exemple serait le bienvenue ...:
Q6= "1 blabla" & vblf & "2 blublu" & vblf & "3 bloblo"

Nota: une cellule peut contenir 32767 cars, vblf et cars de formatage inclus .
"visuellement exploitable", une ligne est limitée à une hauteur de 409, les lignes seront affichées selon la taille de police et leur format de présentation .
Ceci pour attirer votre attention dans le fait que le contenu de la cellule peut être altérée par le formatage de colorisation .

Il vous suffira par la suite de jouer avec les Char start et length pour changer les couleurs à votre guise .
VB:
Sub test()
    With [A1]
        .ClearContents
        I = 0
        Do While Len(.Value) < 32767
            I = I + 1
            .Value = .Value & I & " anticonstitutionnellement " & vbLf
        Loop
        Rows(1).AutoFit
      ' On cherche le caractère 3
        I = InStr(1, .Value, "3", vbTextCompare)
        J = InStr(I, .Value, vbLf, vbTextCompare)
        .Characters(Start:=I, Length:=J - I).Font.Color = vbRed
    End With
End Sub

Attention au contenu de la cellule par la suite si vous faites une comparaison ...
 

Hak42

XLDnaute Nouveau
Bonjour et merci pour votre réponse.
Vous trouverez ci joint un fichier exemple, avec un texte qui explique ce que je souhaiterais faire.
 

Pièces jointes

  • Exemple.xlsx
    20.5 KB · Affichages: 3

Hak42

XLDnaute Nouveau
Bonjour et encore merci pour votre aide.

J'ai utilisé et modifié votre code et grace à vous, j'ai enfin trouver la solution à mon problème.
Mille merci.
Code modifié:

Sub test()
With [A1]
Rows(1).AutoFit

a = InputBox("Début plage") ' on renseigne le premier numéro
b = InputBox("fin plage") ' on renseigne le dernier numéro
For x = a To b
I = InStr(1, .Value, x, vbTextCompare)
J = InStr(I, .Value, vbLf, vbTextCompare)
.Characters(Start:=I, Length:=J - I).Font.Color = RGB(0, 176, 80)
Next x
End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…