[Catégorie modifiée .Net -> VBA] Visual Basic - Validité email

Tamtamaris - 5 sept. 2012 à 16:28
 Tamtamaris - 5 sept. 2012 à 21:44
Bonjour,

Je tente d’exécuter le code suivant (trouvé sur le forum) afin de contrôler la validité d'une adresse mail sous visual basic:

Imports System.Text.RegularExpressions

Public Class Form1 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click

        If IsMailValide(TextBox1.Text) Then
            '[Ton code si True]
        Else
            MessageBox.Show ("Adresse eMail invalide")
            TextBox1.Focus()
        End If

    End Sub

    Private Function IsMailValide(ByVal mailAddress$) As Boolean
        Dim pattern$ = _
        "^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)" & _
        "|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
        Return Regex.IsMatch(mailAddress, pattern, RegexOptions.IgnoreCase)
    End Function

End Class


Mais une bonne partie du code apparait en rouge :

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
....
TextBox1.Focus()
....
Dim pattern$ = _
"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)" & _
"|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
Return Regex.IsMatch(mailAddress, pattern, RegexOptions.IgnoreCase)

....

End Class


Est-ce du VB.net? dans ce cas ,ça explique peut etre pourquoi ça ne marche pas..
Je suis débutante et j'avoue etre complètement perdue! Please Help me ;)

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 sept. 2012 à 16:36
Salut

As-tu :
- Une forme nommée Form1 ?
Sur cette forme, as-tu :
- Un bouton nommé Button1 ?
- Une TextBox nommée TextBox1 ?

Quelle version de VB, dans quel environnement ?
Tu as posté ta question en VB.Net et le code semble bien être du .Net : où est le problème ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
- Non, j'ai "commandButton1" et "UserForm1", j'ai bien textbox1 mais meme quand je renomme ça reste en rouge :o
- et j'utilise Visual Basic à partir d'Excel 2007
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 sept. 2012 à 17:08
Donc c'est du VBA et pas du VB.Net
Catégorie modifiée

Ce code ne peut donc pas fonctionner.
Tu peux utiliser celui de <cette source> VB6 qui fonctionnera sous VBA.
Les fichier FRM ou BAS (dans le BAS la fonction qu'il te faut) sont lisibles sous NotePad.
0
Merci, je vais tester ce code demain au boulot :) et étudier tout ça dès maintenant.

D'après ce que j'ai compris, tu n'utilises pas regexp?

Je vais utiliser cette fonction pour un formulaire d'habilitation, le controle portera sur une colonne pouvant aller jusqu'à 200 lignes. Vaut-il mieux utiliser regexp pour les performances?

Si ça tourne bien comme ça, ça m'arrange comme ça pas besoin de faire cocher aux utilisateurs "Microsoft VBScript Regular Expressions 5.5"

En tout cas, merci beaucoup, j'avais meme pas vu que j'étais dans la mauvaise catégorie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
5 sept. 2012 à 21:23
Sauf erreur de ma part, RegExp n'existe pas en VBA.
0
Ah ok , bon ben plus de doute alors ^^
En tout cas merci, j'ai étudié le code que tu m'as transmis et c parfait!
0
Rejoignez-nous