Soyez le premier à donner votre avis sur cette source.
Vue 6 186 fois - Téléchargée 331 fois
Dim cptmont11 As Integer Dim cptmont12 As Integer Dim cptmont21 As Integer Dim cptmont22 As Integer Public Sub Verifions(KeyAscii As Integer, lechamp As String, compteur As Integer, compteur2 As Integer) If lechamp = "" Then 'si le champ est vide qd il tape alors compteur = 0 'on initialise les cpteurs à zéro compteur2 = 0 End If If KeyAscii = 46 Then 'si c'est un point (.) on le change en virgule (,) KeyAscii = 44 End If If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 44 Then 'si c'est un caractere sans raport avec le decimal (lettres...) 'on affiche une erreur et on n'inscrit pas ce qu'il a tape MsgBox "Ce caractére ne convient pas, veuillez n'entrer que des chiffres (1 à 9 ou ',').", vbExclamation, "Erreur de saisie" KeyAscii = 0 Else If KeyAscii = 44 Then If lechamp = "" Then 'si c'est une virgule et que le champ est vide... KeyAscii = 0 'on n'inscrit pas (pas de virgule en début de nombre décimal...) ,57454????? Else If compteur = 0 Then 'si le champ est utilisé on verifie que le compteur est à zero pour mettre la virgule et la compter compteur2 = 0 compteur = compteur + 1 Else 'si il y a deja une virgule on affiche erreur... et on n'inscrit pas la virgule MsgBox "La virgule ne peut être placé qu'une seule fois dans un nombre décimal.", vbExclamation, "Erreur de saisie" KeyAscii = 0 End If End If End If If compteur = 1 And KeyAscii <> 8 And KeyAscii <> 44 And KeyAscii <> 0 Then 'si il y a une virgule et que l'on tape un chiffre on le compte ds le compteur2 compteur2 = compteur2 + 1 End If If (KeyAscii = 8) Then 'si c'est un retour en arriere on enleve un chiffre du compteur2 (-1) compteur2 = compteur2 - 1 End If If compteur2 < 0 Then 'si le compteur2 est inferieur à zero alors on le met à zero ainsi que le compteur compteur = 0 compteur2 = 0 End If End If End Sub Private Sub Mont1_KeyPress(KeyAscii As Integer) Call Verifions(KeyAscii, Mont1, cptmont11, cptmont12) 'on apelle la procedure avec ses propres compteurs End Sub Private Sub Mont2_KeyPress(KeyAscii As Integer) Call Verifions(KeyAscii, Mont2, cptmont21, cptmont22) 'on apelle la procedure avec ses propres compteurs End Sub '## Mailing: f_latos2@hotmail.com ##'
31 mars 2006 à 11:27
Finalement le code de PCPunch devient presque aussi long, surtout quand il y a plusieurs textbox.
26 avril 2004 à 16:21
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 ????
26 avril 2004 à 16:12
26 avril 2004 à 16:07
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
26 avril 2004 à 15:47
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
++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.