p.e
If IsNumeric(TextBox1) then range("A1")=Cdbl(Txtbox1)
A+
Zit a écrit :
Private Sub TextBox1_Change()
Dim Sep$
Sep = Application.International(xlDecimalSeparator)
TextBox1 = Replace(TextBox1, ".", Sep)
TextBox1 = Replace(TextBox1, ",", Sep)
End Sub
Tu stockes dans une variable le séparateur décimal, et tu remplaces point ET virgule par le "bon" séparateur.
Ainsi cela marche même si tu changes de machine.
Zit a écrit :
--
Cordialement,
Michel Gaboly
www.gaboly.com
La procédure suivante :
- Permet de saisir seulement UN séparateur décimale dans le textbox
- le séparateur utilisé la virgule ou le point ... le même utilisé dans la
feuille de calcul.
- Permet de saisir seulement des chiffres dans le textbox
Le résultat final est nécessaire un nombre. Pour ce faire tu dois
utliser une fonction de conversion du genre : Clng(textbox)
cdbl(textbox)... voir la rubrique dans l'aide sous Fonction de conversion
pour savoir celle qui convient à ton application.
la fonction Val() est à bannir si tu utilises ce qui précède car cette dernière
ne reconnaît que le point comme séparateur décimale alors que la procédure
peut très bien fonctionner avec les 2 séparateurs dicimales.
'--------------------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim Sep As String
Sep = Application.International(xlDecimalSeparator)
If (KeyAscii = 44 Or KeyAscii = 46) And _
InStr(1, TextBox1, Sep, vbTextCompare) = 0 Then
KeyAscii = Asc(Sep)
Exit Sub
End If
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
Exit Sub
End If
End Sub
'--------------------------------------
Salutations!
"Zit" <nospam...@hotmail.com> a écrit dans le message de news: OZT0FePG...@TK2MSFTNGP11.phx.gbl...
Zit