Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige
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
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
Anzeige
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..
Anzeige
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
Anzeige
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
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

E-Mail-Adressen prüfen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und gehe in das Arbeitsblatt, in dem du die E-Mail-Adressen prüfen möchtest.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (dein Arbeitsblattname)" > Einfügen > Modul.
  4. Kopiere den folgenden Code in das 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
  5. Verwende die Funktion in deiner Excel-Tabelle:

    • In einer Zelle schreibe: =EMailGueltig(A2) (wobei A2 die Zelle mit der E-Mail-Adresse ist).
  6. Drücke Enter und die Funktion gibt WAHR oder FALSCH zurück, je nachdem, ob die E-Mail-Adresse gültig ist.


Häufige Fehler und Lösungen

  • Problem: Die Funktion gibt immer FALSCH zurück.

    • Lösung: Stelle sicher, dass die E-Mail-Adressen keine ungültigen Zeichen enthalten. Prüfe den Code, um sicherzustellen, dass die ungültigen Zeichen korrekt definiert sind.
  • Problem: Funktion wird nicht erkannt.

    • Lösung: Stelle sicher, dass du das Modul korrekt erstellt hast und die Funktion richtig geschrieben ist.

Alternative Methoden

Du kannst auch Regular Expressions verwenden, um E-Mail-Adressen zu prüfen. Hier ist ein einfaches Beispiel:

Function TestEmail(vstrEmail As String) As Boolean
    Dim myReg As RegExp
    Set myReg = New RegExp
    myReg.Pattern = "^[a-z0-9\-\.]{2,63}@[a-z0-9\-\.]{2,63}\.[a-z]{2,4}$"
    myReg.IgnoreCase = True
    TestEmail = myReg.Test(vstrEmail)
End Function

Diese Methode ist leistungsfähiger und kann komplexe E-Mail-Formate überprüfen.


Praktische Beispiele

Angenommen, du hast eine Liste von E-Mail-Adressen in Spalte A:

A B
test@example.com =EMailGueltig(A1)
invalid-email =EMailGueltig(A2)

Die Funktion in Spalte B gibt dir an, ob die E-Mail-Adressen gültig sind oder nicht.


Tipps für Profis

  • Regelmäßige Überprüfungen: Führe regelmäßig Prüfungen durch, um sicherzustellen, dass deine E-Mail-Listen aktuell sind.
  • Mehrere E-Mail-Adressen prüfen: Wenn du mehrere E-Mail-Adressen in einer Zelle hast, kannst du eine Schleife in VBA verwenden, um jede Adresse zu überprüfen.
  • Validierung durch externe Tools: Nutze externe Tools oder APIs, um die E-Mail-Erreichbarkeit zu prüfen, wenn du eine größere Datenbasis hast.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob eine E-Mail-Adresse vorhanden ist?
Eine direkte Überprüfung der Existenz einer E-Mail-Adresse ist nicht möglich. Du kannst jedoch die Syntax mit VBA oder Regular Expressions überprüfen.

2. Was mache ich, wenn ich eine große Liste von E-Mail-Adressen überprüfen möchte?
Du kannst die oben genannten Funktionen in einer Schleife verwenden oder die E-Mail-Adressen in einer Datenbank speichern und mit externen Validierungsdiensten abgleichen.

3. Gibt es eine Möglichkeit, E-Mail-Adressen in Echtzeit zu validieren?
Ja, dazu kannst du Web-APIs verwenden, die die E-Mail-Erreichbarkeit prüfen. Diese erfordern jedoch Programmierkenntnisse und API-Zugriff.

4. Kann ich die Funktion auch für andere Daten verwenden?
Ja, die Funktion kann an andere Formate angepasst werden, indem du die Bedingungen im Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige