Soyez le premier à donner votre avis sur cette source.
Snippet vu 3 732 fois - Téléchargée 3 fois
Private Sub TxtRessourceVendu_KeyPress(KeyAscii As Integer) If KeyNumerique(KeyAscii, TxtRessourceVendu) = False Then KeyAscii = 0 End Sub
' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ' USAGE: Chaine numérique selon divers critères ' si chaine on compare aussi avec la chaine ' >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Function KeyNumerique(ByVal KeyAscii As Integer, _ Optional ByVal Chaine As String) As Boolean ' Cette fonction est placé ainsi pour la vitesse d'éxécution If IsNumeric(Chr(KeyAscii)) = True Then KeyNumerique = True: Exit Function Dim Y As Integer ' le caractère qui sera autorisé 1 seule fois ! Dim N As Variant ' le tableau contenant le code ASCII des caractères permis . N = Array(8, 32, 44, 46, 110) ' Les caractères autorisés (on peut en ajouter !) If Chaine = vbNullString Then GoTo Suite ' On ne vérifira pas la quantité de virgule ou de point If InStr(Chaine, ",") > 0 Then Y = Y + 1 ' On verifie si la chaine contient déjà If InStr(Chaine, ".") > 0 Then Y = Y + 1 ' la Virgule ou le Point. If KeyAscii = 44 Then Y = Y + 1 ' 44 c'est la virgule If KeyAscii = 46 Then Y = Y + 1 ' 46 c'est le point If Y > 1 Then ' il y a déjà un point ou une virgule KeyNumerique = False ' donc on n'ajoute pas ce caractère Exit Function End If Suite: Dim I As Integer ' la variable For I = LBound(N) To UBound(N) If KeyAscii = N(I) Then ' On teste si ce caractère est autorisé KeyNumerique = True ' Oui ? alors on le garde Exit Function End If Next I ' Il ne correspond pas ? on compare le caractère suivant End Function
4 avril 2019 à 00:29
Modifié le 4 avril 2019 à 00:32
C'est du code VB Net à la sauce VB 6
Tu ne profites nullement des fonctionnalités NET !
Ne mérite point à mon avis de rester sur le site
Pour coder en VB Net un excellent site : https://plasserre.developpez.com/cours/vb-net/
4 avril 2019 à 01:48
Désolé : le code est bien du VB 6
Oublie mon commentaire avec mes excuses
4 avril 2019 à 07:04
D’autre part le titre parle de textbox, or ce code est une fonctions isolée.
Tu n’expliques pas comment on l’utilise avec une textbox ni d’ailleurs à quoi elle sert.
Du point de vue du code, tu utlises un goto, c’est très déconseillé https://www.developpez.net/forums/d4388/general-developpement/langages-programmation/debuter/pourquoi-goto-deconseille/
En plus, si le but est de vérifier que le texte représente un nombre, tu aurais gagné du temps (d'exécution et de codage) comparant directement la chaine avec Like ou une regex.
Modifié le 4 avril 2019 à 17:15
Désoler, le descriptif a disparu quand j'ai voulu corriger de défaut d'affichage, toujours pas corrigé puisque je n'ai pas le bouton qui permet le code !
Pour faire simple le goto est là pour passer l'option null ... je n'aime pas les gotos quand on peu s'en passer mais dans ce cas de figure, il n'est pas imbriqué dans une boucle, donc pas de risque de plantage ...
Il s'agit d'un vieux code écrit enVB ... 5 !
Oui, oui ! convertie a la base d'un code que j'avais écrit en Qbasic et bien sur amélioré ! Ensuite, je pouvais aussi utiliser par exemple:
Mais cette fonction bien que très pratique et fonctionnel à un sérieux défaut:
Il accepte des virgule ou des points a volonté dans le textBox,
donc mon petit code permet de corriger cela avec un code simple et somme toute court.
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.