Control dans Txtbox

Résolu
Signaler
Messages postés
4
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
16 février 2005
-
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
-
Salut
Je voudrais avoir un code source pour pouvoir être capable de controle la saisie d'une adresse email de facon simple SVP. En fait, je veux pouvoir controlé la saisie afin quelle respecte cette forme. ********@*******.***

Merci

Briss

5 réponses

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Donc 1 er contrôle de saisie à la volée :

Private Sub Text1_KeyPress(KeyAscii As Integer)


If KeyAscii > 31 And (KeyAscii < 48 Or KeyAscii > 57) And (KeyAscii < 65 Or KeyAscii > 90) And (KeyAscii < 97 Or KeyAscii > 122) And KeyAscii <> 64 And KeyAscii <> 46 And KeyAscii <> 95 And KeyAscii <> 45 Then KeyAscii = 0

End Sub

Explik :

- If KeyAscii > 31 : on permet les touches permettant de rectifier sa saisie (backspace, retour arrière, suppr, ...)
- And (KeyAscii < 48 Or KeyAscii > 57) : on permet la saisie des chiffres
- And (KeyAscii < 65 Or KeyAscii > 90) : on permet la saisie des lettres de "A" à "Z"
- And (KeyAscii < 97 Or KeyAscii > 122) : on permet la saisie des lettres de "a" à "z"
- And KeyAscii <> 64 : on permet la saisie de "@"
- And KeyAscii <> 46 : on permet la saisie de "."
- And KeyAscii <> 95 : on permet la saisie de "_"
- And KeyAscii <> 45 : on permet la saisie de "-"
- Then KeyAscii = 0 : sinon, on annule la saisie

En fait, keyascii représente la valeur ASCII des caractères, le reste, c'est qu'une histoire de cominaisons OR/AND.

Ensuite, tu peux analyser la chaine saisie pour vérifier s'il n'y a pas plusieurs fois un "@" de saisi par exemple.

Cordialement, CanisLupus
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Salut,

Une façon simple ?

A priori, un contrôle de ce type se fait en 3 temps :

1 - Sur le keypress dans la textbox, contrôler les caractères admis avec if keyascii en excluant les caractères interdits (autres que alphanumériques et différents de ".", "_", "-", "@",...)
2 - Avant de valider, chercher s'il y a 1 seul "@",
3 - Vérifier si le domaine existe, du genre "com", "fr", .... (la liste est longue), voire le nom (voila, free, wanadoo, ....) liste encore plus longue et jamais exhaustive.

Pour moi, la façon la plus simple et la plus sécurisée (enfin bon ...) est d'envoyer un mail à l'adresse saisie et de ne valider l'inscription que s'il y a une réponse OK.

Cordialement, CanisLupus
Messages postés
4
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
16 février 2005

Salut,

En fait, mon véritable problème est que je ne sais pas comment faire la saisie des alphanumérique et comment faire l'interdiction des autres caractères. Pour le
reste, je crois pouvoir me débrouiller avec ma base de connaissance limité.
Je suis a la base du probleme. J'utilise simplement le VBA pour completer un carnet
d'adresse pour ARCGIS. Je veux simplement limiter les risque d'erreur de saisie
d'adress email. Un exemple de programation m'aiderais beaucoup pour controler
mon adress email serait tres aprécier.

Coordialement
Briss
Messages postés
4
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
16 février 2005

Salut,

Merci bien gros pour ton aide. Cela marche tres bien sauf que j'ignore simplement
comment empecher la duplication d'un caractere telle que le @.

Merci

Briss
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
18
Pour empêcher la saisie en double de @ tu ajoutes, toujours dans le keypress :

If KeyAscii = 64 And InStr(TaTextBox.Text, "@") > 0 Then
KeyAscii = 0
End If

Après, bien sûr, à la validation par exemple, il faudra contrôler s'il y a bien 1 @ :

If InStr(TaTextBox.Text, "@") = 0 Then
'code si pas une adresse valide
Else
'code si l'adresse est valide
End If

Cordialement, CanisLupus