Private Sub Textbox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890,-", Chr(KeyAscii)) = 0 Or TextBox2.SelStart > 0 And Chr(KeyAscii) = "-" _
Or InStr(TextBox2.Value, ",") <> 0 And Chr(KeyAscii) = "," Then KeyAscii = 0: Beep
End Sub
Je propose une solution un peu différente qui ne va pas vérifier en permanence ce qui est saisi, mais va plutôt contrôler la valeur finale de la textbox, j'ai également pris en compte le bouton qui doit être désactivé tant que tout n'est pas remplis.