blord
XLDnaute Impliqué
Bonjour à tous,
J'utilise régulièrement ce bout de code que j'avais récupérer sur le forum (merci beaucoup !) ...
Cependant, j'aimerais y ajouter une fonction soit de remplacer automatiquement la saisie d'une virgule par un point décimal.
J'ai essayé ceci au début ou à la fin du code :
If KeyAscii = 44 Then KeyAscii = 46
J'ai aussi essayé ceci au début ou à la fin du code :
With TextBox1
.Value = Replace(.Value, ",", ".")
End With
Mais dès que je modifie le code, il laisse passer la saisie de plus d'un séparateur décimal (virgule ou point) ce que je ne désire évidemment pas...
Si quelqu'un pouvait m'éclairer sur mon problème, ce serait vraiment apprécié...
Bonne journée !
Benoit Lord
J'utilise régulièrement ce bout de code que j'avais récupérer sur le forum (merci beaucoup !) ...
Code:
Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
Const entrees_entieres_permises = "0123456789" & vbCr & vbBack
Const Point = "."
Const Virgule = ","
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Empêche la saisie autre que du numérique ainsi que plus qu'un séparateur décimal
If KeyAscii = Asc(Point) Then
If InStr(TextBox1, Virgule) = 0 Then
KeyAscii = Asc(Virgule)
Else
KeyAscii = 0
End If
ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
ElseIf InStr(TextBox1, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
KeyAscii = 0
End If
If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
End Sub
J'ai essayé ceci au début ou à la fin du code :
If KeyAscii = 44 Then KeyAscii = 46
J'ai aussi essayé ceci au début ou à la fin du code :
With TextBox1
.Value = Replace(.Value, ",", ".")
End With
Mais dès que je modifie le code, il laisse passer la saisie de plus d'un séparateur décimal (virgule ou point) ce que je ne désire évidemment pas...
Si quelqu'un pouvait m'éclairer sur mon problème, ce serait vraiment apprécié...
Bonne journée !
Benoit Lord