CONTROLE DE SAISIE SIMPLE D'UN NOMBRE DÉCIMAL POUR EVITER LES ERREURS MATHÉMATIQ

Golog
Messages postés
224
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
22 décembre 2009
- 25 avril 2004 à 01:35
CSCGreg
Messages postés
2
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
31 mars 2006
- 31 mars 2006 à 11:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22238-controle-de-saisie-simple-d-un-nombre-decimal-pour-eviter-les-erreurs-mathematiques-par-exemple

CSCGreg
Messages postés
2
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
31 mars 2006

31 mars 2006 à 11:27
Je pense que malgré les critiques se code est très bien fait et bien commenté, pour chaque étape.
Finalement le code de PCPunch devient presque aussi long, surtout quand il y a plusieurs textbox.
pcpunch
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
4
26 avril 2004 à 16:21
Evidement que ca ne rendai pas le mm resultat que toi il suffisait de le modifié!!!!

Allez comme ça on va stopper la discution, une petite fonction qui permet de definir le nombre de décimal aprés la virgule :

Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr(Text1, ",") <> 0 And KeyAscii 46 Then KeyAscii 0: Exit Sub
If NbDeci(Text1, 2) <> True And KeyAscii <> 8 Then KeyAscii = 0: Exit Sub
If KeyAscii 46 Then KeyAscii 44
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 And KeyAscii <> 44 Then KeyAscii = 0
End Sub

Public Function NbDeci(Src As TextBox, nb As Integer) As Boolean
'Src le textbox Nb le nombre de décimal autorisé
Dim Pos As Integer
Dim Decim As String
Pos = InStr(Src, ",")
If Pos <> 0 Then
Decim = Mid(Src, Pos + 1, Len(Src) - Pos + 1)
If Len(Decim) nb Then NbDeci False Else NbDeci = True
Else
NbDeci = True
End If
End Function

Voila , je pense qu'il n'y a plus rien a ajouter maintenant ????
cs_letrust
Messages postés
9
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
25 janvier 2005

26 avril 2004 à 16:12
lol jte demande pas de le faire jte diser juste que dans ton code ça ne render pas le meme resultat que moi, c bon jsé le faire =) sinon merci en faite la fonction Chr jconnaissais pas =)
pcpunch
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
4
26 avril 2004 à 16:07
La mm chose ne plus condensé et moin de ligne lol :

Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr(Text1, ",") <> 0 And KeyAscii 46 Then KeyAscii 0: Exit Sub
If KeyAscii 46 Then KeyAscii 44
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 And KeyAscii <> 44 Then KeyAscii = 0
End Sub
pcpunch
Messages postés
1247
Date d'inscription
mardi 7 mai 2002
Statut
Membre
Dernière intervention
18 février 2019
4
26 avril 2004 à 15:47
Ouuuuu la la !!! Malheur !! lol
Faut vraiment tout te faire letrust :

Dim Virgule As Boolean

Private Sub Form_Load()
Virgule = False
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii 46 And Not Virgule Then KeyAscii 44: Virgule = True
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 And KeyAscii <> 44 Then KeyAscii = 0
End Sub

++
Afficher les 13 commentaires