re
bonjour Steelson
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim t$, X&, XX&, A, Dec&
If Not Chr(KeyAscii) Like "[0-9-,-.]" Then KeyAscii = 0: Exit Sub
Dec = 2 'nombre de décimales voulues
With TextBox1
t = Replace(.Value, ",", ".") & " "
X = .SelStart: .SelLength = 0
XX = IIf(X + 1 < Len(t), 1, 2)
Mid(t, X + 1, 1) = Replace(Chr(KeyAscii), ",", ".")
t = Replace(t, " ", "")
t = Replace(t, Split(t, ".")(0), Trim(Format(Split(t, ".")(0), Application.Rept(" @@@", 35))))
A = Split(t, "."): If UBound(A) > 0 Then t = Replace(t, A(1), Left(A(1), Dec))
.Value = t: .SelStart = X + XX
End With
KeyAscii = 0
End Sub
si tu veux pouvoir revenir en arrière ou supprimer il te faudra gérer CA dans le keydown et donc convertir le keydown en keyascii
exactement comme je le fait dans mes deux fonction datebox
en attendant avec celui ci tu a le formatage x chiffre après le point piloté par "Dec" et tu a la possibilité de revenir et de modifier un chiffre ou l'insérer