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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <goodcook@discussions.microsoft.com> a écrit dans le message de news:
26C41153-EAC2-47AE-BBF8-E3B5A0C0B222@microsoft.com...
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.
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.
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
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" <goodcook@discussions.microsoft.com> a écrit dans le message de news:
26C41153-EAC2-47AE-BBF8-E3B5A0C0B222@microsoft.com...
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
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