Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

E-Mail-Adressen prüfen

E-Mail-Adressen prüfen
17.10.2006 15:26:06
Gaby
Liebes Excel-Forum.
gibt es eine Möglichkeit vorhandene E-Mail-Adressen auf ihre Richtigkeit zu prüfen. Wir müssen diese aus Excel in unser System übernehmen und ich muss prüfen ob @ und ein Punkt vorhanden sind und das kein Leer- oder Sonderzeichen verwendet wurde. Ist dies möglich?
Danke für eure Hilfe
Gaby

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail-Adressen prüfen
17.10.2006 15:43:26
Rudi
Hallo,
in ein Modul:

Function EMailGueltig(strEMail As String) As Boolean
Dim arrNOK, i As Integer
arrNOK = Array(" ", "\", ";", "(", ")", "ä", "ö", "ü") 'ungültige Zeichen, anpassen
For i = 0 To UBound(arrNOK)
If InStr(LCase(strEMail), arrNOK(i)) > 0 Then
EMailGueltig = False
Exit Function
End If
Next i
EMailGueltig = InStr(strEMail, "@") > 0 And InStr(strEMail, ".") > 0
End Function

in der Tab dann z.B. =emailgueltig(A2)
Gruß
Rudi
AW: E-Mail-Adressen prüfen
17.10.2006 15:51:23
Reinhard
Hallo Rudi,
so ist's doch sicherer:
EMailGueltig = InStr(strEMail, "@") =1 And InStr(strEMail, ".") =1
Gruß
Reinhard
Anzeige
AW: E-Mail-Adressen prüfen@Reinhard
17.10.2006 16:01:25
Rudi
Hallo Reinhard,
das ist falsch!
Instr gibt die Position des Zeichens im String zurück.
Somit müssten beide an 1er Stelle sein, was 1.unwahrscheinlich und 2.unmöglich ist.
Gruß
Rudi
AW: E-Mail-Adressen prüfen@Reinhard
17.10.2006 16:22:44
Reinhard
Hallo Rudi,
aargs, hab das irgendwie mit Anzahl verwechselt :-)
vielleict dann so, ungetestet:
EMailGueltig = InStr(replace(strEMail,"@",""), "@") =0 And InStr(replace(strEMail,".",""), ".") =0
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
AW: E-Mail-Adressen prüfen
17.10.2006 16:04:06
IngGi
Hallo Reinhard,
kann es sein, dass du damit auf die Anzahl von "@" und "." rauswillst? Da sitzt du einem Denkfehler auf. InStr gibt die Position, nicht die Anzahl zurück. Man könnte aber die Prüfung auf "." auf den Bereich nach "@" einschränken und zusätzlich darauf prüfen, ob die Punkte direkt vor oder nach dem "@" stehen:

Function EMailGueltig(strEMail As String) As Boolean
Dim arrNOK, i As Integer
arrNOK = Array(" ", "\", ";", "(", ")", "ä", "ö", "ü") 'ungültige Zeichen, anpassen
For i = 0 To UBound(arrNOK)
If InStr(LCase(strEMail), arrNOK(i)) > 0 Then
EMailGueltig = False
Exit Function
End If
Next i
EMailGueltig = InStr(strEMail, "@") > 0 And _
InStr(Right(strEMail, Len(strEMail) - InStr(strEMail, "@") - 1), ".") > 0 And _
InStr(strEMail, ".@") = 0 And InStr(strEMail, "@.") = 0
End Function
Gruß Ingolf
Anzeige
AW: E-Mail-Adressen prüfen
17.10.2006 16:35:03
Reinhard
Hallo Ingolf,
ja, kam da durcheinander :-)
Option Explicit
Function EMailGueltig(strEMail As String) As Boolean
Dim n As Integer, Sonder As String
For n = 1 To Len(strEMail)
If Mid(UCase(strEMail), n, 1) > "Z" Or Mid(UCase(strEMail), n, 1) < "A" Then Sonder = Sonder & Mid(strEMail, n, 1)
Next n
EMailGueltig = Sonder = "@."
End Function
Sub test()
MsgBox EMailGueltig("abc@hmf.de")
End Sub

Gruß
Reinhard
AW: E-Mail-Adressen prüfen
17.10.2006 16:16:47
EtoPHG
Hallo Reinhard,
Wenn schon sicherer (aber OHNE Spezialzeichen):

eMailGueltig = InStr(strEMail, "@") > 1 And InStr(strEMail, ".") > InStr(strEMail, "@")

Gruss Hansueli
Anzeige
AW: E-Mail-Adressen prüfen
17.10.2006 16:37:30
Andi_H
prüft ob . und @ jeweils nur 1 x vorhanden sind und ob Leer - und Sonderzeichen enthalten sind

Function IsMailAddress(EmAd As String) As String
Application.Volatile
If InStr(1, EmAd, "@") > 0 Then
If InStr(InStr(1, EmAd, "@") + 1, EmAd, "@") > 0 Then
IsMailAddress = "Ihre Mailadresse enthält mehr als ein '@'"
Exit Function
End If
Else
IsMailAddress = "Ihre Mailadresse enthält kein '@'"
Exit Function
End If
If InStr(1, EmAd, ".") > 0 Then
If InStr(InStr(1, EmAd, ".") + 1, EmAd, ".") > 0 Then
IsMailAddress = "Ihre Mailadresse enthält mehr als ein '.'"
Exit Function
End If
Else
IsMailAddress = "Ihre Mailadresse enthält keinen '.'"
Exit Function
End If
If InStr(1, EmAd, " ") > 0 Then
IsMailAddress = "Ihre Mailadresse enthält leerzeichen!"
Exit Function
End If
Dim Sonderzeichen As Variant
Sonderzeichen = Array("ä", "ö", "ü", "Ü", "Ö", "Ä", ",", ";", "-", "_", "*", _
"+", "~", ":", "§", "$", "%", "&", "/", "(", ")", "=", "?", "\", "`", "´", _
"^", "°", "<", ">", "|")
For i = 0 To UBound(Sonderzeichen)
If InStr(1, EmAd, Sonderzeichen(i)) > 0 Then
IsMailAddress = "Ihre Mailadresse enthält Sonderzeichen!"
Exit Function
End If
Next
IsMailAddress = "Korrekt"
End Function

Gruß
Andi
Anzeige
Jungs - dafuer gibts Regex!
17.10.2006 18:50:53
Johannes
Hallo Rudi,
das beste ist, du setzt dir nen Verweis auf die VB-Script Regular Expressions und schon hast du die richtigen Werkzeuge um sowas richtig anzugehen.
Option Explicit
Dim myReg As RegExp
Public Function TestEmail(ByVal vstrEmail As String)
  
  Dim blnTest As Boolean
  Set myReg = New RegExp
  myReg.Pattern = _
        "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
  myReg.IgnoreCase = True
  blnTest = myReg.Test(vstrEmail)
  If blnTest = True Then
     MsgBox "E-Mail-Adresse ist gültig.", vbOKOnly, "eMail-Test"
  Else
     MsgBox "E-Mail-Adresse ist ungültig!", vbOKOnly + vbCritical, _
            "eMail-Test"
  End If
  Set myReg = Nothing
End Function

Gruesse,
Johannes
Anzeige
AW: Jungs - dafuer gibts Regex!
17.10.2006 20:46:37
Rudi
Hallo,
schön und gut, aber die muss man erst mal kennen. Hab zwar schon mal davon gehört, weiß davon aber weniger als von Timbuktu. ;-)
Gruß
Rudi

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige