Salut tout le monde,
moi, ce qui me dérange, c'est qu'un code laisse des failles à l'utilisateur lambda : burk !
La forme des données voulue par Atlas est F1-F23 (sauf qu'il n'y a pas Subscript dans les options de l'éditeur !) et rien d'autre.
Je t'invite donc à taper "5M+P24" ou "1+2+3" pour voir le feu d'artifice d'efficacité de ton code...
Mais, tu as raison sur un point auquel j'accorde moi-même beaucoup d'importance quitte à rendre la lecture du code quelque peu difficile pour un débutant : la concision !
Donc, économisons de l'espace et soyons efficace en... 1 ligne !
Private Sub Worksheet_Change(ByVal Target As Range)
'
If Target.Count = 1 Then If Target.Column = 5 And InStr(Target, "+") > 0 Then If InStrRev(Target, "+") = InStr(Target, "+") And IsNumeric(Split(Target, "+")(0)) And IsNumeric(Split(Target, "+")(1)) Then Target = "F" & Format(Split(Target, "+")(0), "0") & "-F" & Format(Split(Target, "+")(1), "0"): Target.Characters(2, InStr(Target, "-") - 2).Font.Size = 12: Target.Characters(2, InStr(Target, "-") - 2).Font.Subscript = True: Target.Characters(InStr(Target, "-") + 2, Len(Target) - (InStr(Target, "-") + 1)).Font.Size = 12: Target.Characters(InStr(Target, "-") + 2, Len(Target) - (InStr(Target, "-") + 1)).Font.Subscript = True Else Target = "": MsgBox "Valeur non conforme !" & Chr(10) & "Format exigé : 1+1", vbCritical + vbOKOnly, "ATLAS - Info" Else Exit Sub
'
End Sub
Bien le bonjour, Steelson !
A+