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
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 ...
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

Statistiques des forums

Discussions
314 644
Messages
2 111 529
Membres
111 189
dernier inscrit
Laurent.