AW: Email auf Korrektheit (Standard) prüfen
03.02.2014 16:10:55
Daniel
Habe hier noch eine Lösung gefunden die "ok" wäre. Sie müsste dann via Button ausführbar sein. Der prüft dann immerhin, ob eine Email dem Standard entspricht. Ich denke dass es utopisch ist die Datei mit unserem gesamten Adressbuch abzugleichen.
Wie kann ich bei:
s = Range("D6").Value // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//
die Range so ändern, dass ich sie für viele Zellen bzw. ganze Zeile prüfen kann ? Es müssten mehrere Zeilen geprüft werden, die jedoch nicht direkt aufeinander folgen, sondenr dazwischen noch weitere Zeile sind. Ich muss somit genau definieren welche Zeile/Zellen geprüft werden sollen.
A1 123@xxx.de B1 1234@xxx.de C1 666@xxx.de
....
A2 ACB@xxx.de B2 ggg@xxx.de C2 69@xxx.de
....
A3 XYZ@123.de B3 XXX@xyz.de C3 zzZ@uhu.de
Sub validate()
Dim s As String
s = Range("D6").Value // _
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX//
If Trim(s) "" Then
If ValidateEmail(s) Then
MsgBox ("E-Mail richtig...!"), _
vbExclamation, "E-Mail"
Else
MsgBox ("E-Mail falsch...!"), _
vbExclamation, "E-Mail"
End If
End If
End Sub
' E-Mail Adressn prüfen - in Tabelle20
' Solltest du eine mehr oder weniger offizielle Definition von Email-Adressen gemäss
' der Definition RFC 2822 testen wollen, kannst du folgenden Code) benutzen:
Public Function ValidateEmail(ByVal strEmail As String) As Boolean
Dim myReg As Object
Const cPatternSmall = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
Const cPatternRFC2822 = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|" & _
"}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:" & _
"[a-z0-9-]*[a-z0-9])?"
'MsgBox cPatternRFC2822
Set myReg = CreateObject("VBScript.RegExp")
myReg.Pattern = cPatternRFC2822 ' Durch cPatternSmall ersetzen für einfachen Test
myReg.IgnoreCase = True
ValidateEmail = myReg.Test(strEmail)
Set myReg = Nothing
End Function