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