Bonjour,
Je te propose un autre code avec Select Case pour un choix seulement numérique avec le séparateur décimal du système, adapte à tes besoins :
Private Sub Montant_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 8 'suppression...
Montant.Text = Left(Montant.Text, Len(Montant.Text))
Case 9, 96 To 105 'tabulations et chiffres donc ne rien faire...
Case 110, 188 'séparateur décimal...
'1 seul
If InStr(Montant.Text, ",") > 1 Or InStr(Montant.Text, ".") > 1 Then KeyCode = 0: Exit Sub
'séparateur décimal système
If Chr(46) <> Format(0, ".") Then KeyCode = 188
If Chr(44) <> Format(0, ".") Then KeyCode = 110
Case Else
KeyCode = 0
End Select
End Sub