Bonjour Laly, le Forum
Je n'ai pas essayé de reprendre ton idée, mais j'ai une solution avec une autre approche... Il y a probablement plus simple, mais ceci fonctionne :
Option Explicit
Option Base 1
Sub TestValidEmail()
Dim Adresse As String, Msg As String, Link As String
Dim CodeANSI() As Integer
Dim i As Byte, X As Byte
Dim OK As Integer
Adresse = LCase(InputBox("Taper une Adresse Email", "EMAIL ADDRESS", "eygenraam.thierry@laposte.net"))
ReDim CodeANSI(1 To Len(Adresse))
For i = 1 To Len(Adresse)
CodeANSI(i) = Asc(Mid(Adresse, i))
Next i
For X = 1 To UBound(CodeANSI)
Select Case CodeANSI(X)
Case 48 To 57: OK = OK 'Accepte 10 caractère chiffre
Case 97 To 122: OK = OK 'Accepte 26 caractère alphabet minuscule
Case 45, 46, 64, 95: OK = OK 'Accepte les caractères suivants :"-", ".", "@","_"
Case Else: OK = OK + 1: Msg = Msg & vbTab & CodeANSI(X) & vbCrLf
End Select
Next X
If OK > 0 Then
MsgBox "Numéro du caractère interdit pour adresse électronique :" _
& vbCrLf & vbCrLf & Msg
Exit Sub
End If
Link = "Mailto:" & Adresse & "?Subject=Bonjour de la part de " & _
Application.UserName & " en direct de la dernière démo de @+Thierry !"
ActiveWorkbook.FollowHyperlink Link, , True
End Sub
Voilà normalement, je devrais bien recevoir un mail si tu fais tourner cette procédure, par contre si il y a un caractère interdit ce sera stoppé avant...
Voilà je pense que çà va pouvoir faire ton affaire ;-)
Pour ton PS, ici c'est le code Chr(X) donc ANSI (je crois !!!), mais je pense que c'est suffisant pour faire un test de ce genre. A noter que je bascule tout en Minuscule dès le départ dans mon InputBox, çà évite de gérer des majuscules inutiles en adresse email... Mais sinon les Chr Code pour l'alphabet Majuscule de 65 à 90.
Bonne Après Midi
@+Thierry