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

  • Initiateur de la discussion Initiateur de la discussion Hak42
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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 ...
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour