Restriction de caracteres dans une adresse electronique

L

Laly

Guest
Bonjour,
Bien qu'il s'agisse d'un forum Excel, il me semble que vous pourriez m'aider.
Il faut dire que je suis nulle en programmation
Je travaille sous une BD access et essaie mettre en place un code qui restreint la saisie de certains caractéres (tel à, é, : etc). J'ai un code mais ca ne marche. Quelqu'un pourrait-il m'aider?

Le code est le suivant:

Private Sub SITEWEB_LABO_Change()
Dim i As Integer
For i = 0 To 45 Or i > 58 And i < 63 Or i > 122
If Me.SITEWEB_LABO = " * &chr(i) &*" Then
MsgBox "caractère interdit pour adresse électronique"
End If
Next i
End Sub.

Par ailleurs y aurait-il moyen d'utiliser la codification Ascii dans ce code? Si oui Comment?

Merci d'avance
 
@

@+Thierry

Guest
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
 
L

Laly

Guest
Bonjour Thierry

Merci. Ca me parait tres complique par contre j'ai un code plus simple qui a l'air de marcher. Par ailleurs j'ai decouvert tout a fait oar hasard que les code des caracteres que j'entrais n'étais pas ceux de la Table Ascii. En fait j'avais pas le message générique sur mon code pour certains caracteres et donc j'ai afficher les code :msgbox(Keycode) et la surprise!!!

Ex: le é qui habituellement a pour code 233 me donne 50 (code du 2) alors que j'ai comme code du 2, 98 (celui de la lettre a minuscule normalement). Y en a plein d'autres en fait tous les caracteres spéciaux sont chambouler.
Quelqu'un a-t-il une explication?

Je te joins également mon code
If (KeyCode > 32 Or KeyCode < 57) And (KeyCode < 64 Or KeyCode > 122) Then
MsgBox "caractère interdit pour adresse électronique"
End If.
Par ailleurs y aurait-il moyen d'annuler le caractere eronne?
 
@

@+Thierry

Guest
Bonsoir Laly

BEn si tu testes mon code que je t'ai proposé, il t'affiche carrément un message avec le (ou les) caractères interdits.... C'est pour çà qu'il est sûrement plus compliqué !!!

Maintenant l'annuler directement, serait plutôt dangereux, car si le user à tapé "é" au lieu d'un "e" et qu'il est purement et simplement supprimé par mon code et que le mail part sans le "e", çà m'étonnerait qu'il arrive ;-)

Bonne Nuit
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
313 092
Messages
2 095 190
Membres
106 211
dernier inscrit
Céline 161918