Bonsoir Mathieu,
Je te propose cette adaptation de ton code VBA :
Option Explicit
Sub Test()
Dim c As Range, p As Byte
For Each c In Application.Selection
If c.Value <> "" Then
c.Value = Replace$(c.Value, "m2", "m²")
c.Value = Replace$(c.Value, "m3", "m³")
p = InStr(UCase$(c.Value), "CO2")
If p > 0 Then c.Characters(p + 2, 1).Font.Subscript = True
End If
Next c
End Sub
⚠ La mise en indice faite à l'aide de .Subscript doit obligatoirement être située après les instructions avec Replace$(), car sinon, les Replace$() annulent les indices.
Si besoin, tu peux demander une adaptation.
Merci de me dire si ça te convient.
dhany
Merci beaucoup pour votre aide.
J'ai testé ça a l'air de marcher !
Par contre pourrais tu m'expliquer clairement l'opération :
p = InStr(UCase$(c.Value), "CO2")
If p > 0 Then c.Characters(p + 2, 1).Font.Subscript = True
Je suis pas trop un expert en macro, j'aimerai comprendre plus en détail surtout si je fais des modifications !
Merci en tout cas