Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

separateur décimal

2 réponses
Avatar
goodcook
Bonjour
Sur excel2002 sous xp
J'utilise un userform pour rentrer des données numériques et textes dans une
feuille de calcul.
Cette application est utilisée sur plusieurs pc. Certains postes n'
acceptent que les chiffres décimaux avec la virgule du pavé numérique et
d'autres que la virgule coté lettres.
Merci à toute aide.

2 réponses

Avatar
MichDenis
Dans un module standard, copie cette fonction personnalisée :

'-------------------------------
Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)

SepDec = Format(0, ".")

If Char = 44 Or Char = 46 Then
If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Asc(SepDec)
End If
Else
If Char < 48 Or Char > 58 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Char
End If
End If
End Function
'----------------------------

Et dans ton module formulaire, pour tous les textbox devant recevoir des données numériques :
'----------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

KeyAscii = CheckLaSaisie(TextBox1, KeyAscii)

End Sub
'----------------------------




"goodcook" a écrit dans le message de news:

Bonjour
Sur excel2002 sous xp
J'utilise un userform pour rentrer des données numériques et textes dans une
feuille de calcul.
Cette application est utilisée sur plusieurs pc. Certains postes n'
acceptent que les chiffres décimaux avec la virgule du pavé numérique et
d'autres que la virgule coté lettres.
Merci à toute aide.
Avatar
goodcook

Dans un module standard, copie cette fonction personnalisée :

'-------------------------------
Function CheckLaSaisie(Textbox As MSForms.Textbox, ByVal Char As Integer)

SepDec = Format(0, ".")

If Char = 44 Or Char = 46 Then
If InStr(1, Textbox, SepDec, vbTextCompare) > 0 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Asc(SepDec)
End If
Else
If Char < 48 Or Char > 58 Then
CheckLaSaisie = 0
Else
CheckLaSaisie = Char
End If
End If
End Function
'----------------------------

Et dans ton module formulaire, pour tous les textbox devant recevoir des données numériques :
'----------------------------
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

KeyAscii = CheckLaSaisie(TextBox1, KeyAscii)

End Sub
'----------------------------




"goodcook" a écrit dans le message de news:

Bonjour
Sur excel2002 sous xp
J'utilise un userform pour rentrer des données numériques et textes dans une
feuille de calcul.
Cette application est utilisée sur plusieurs pc. Certains postes n'
acceptent que les chiffres décimaux avec la virgule du pavé numérique et
d'autres que la virgule coté lettres.
Merci à toute aide.


Merci MichDenis pour votre solution
Impeccable, la saisie des nombres se fait aussi bien avec la virgule du pavé

numérique que celle des lettres. Maintenant il ne me reste plus qu'à essayer
de comprendre le code de cette procédure.
Bonne soirée