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

Forumthread: eMail-Adressen auf Syntax prüfen

eMail-Adressen auf Syntax prüfen
17.02.2009 15:20:00
Selter
Hallo,
kann ich in XLS auf einfache Weise eine Liste von Adressen auf Korrektheit hinsichlich Syntax prüfen?
In der Liste gibt es u.a. Umlaute etc.
Vielen Dank
Selter
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja mit VBA und RegExp
17.02.2009 15:40:00
Renee
Hi Selter,
Mit VBA und einer udF (user-defined-Function).
Folgend Code in allgemeines Modul:

Public Function ValidateEmail(ByVal strEmail 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
ValidateEmail = myReg.Test(strEmail)
Set myReg = Nothing
End Function


Im VBE Menu - Extras - Verweise: Microsoft VBScript Regular Expressions aktivieren
Mail-Adresse in A1, Formel in B1 =ValidateEmail(A1) ergibt WAHR, wenn Email-Adresse OK, sonst FALSCH
GreetZ Renée

Anzeige
AW: Ja mit VBA und RegExp
17.02.2009 15:54:00
Selter
Hört sich gut an :)
Nur, wie lege ich diese udF an?
Habe von VBA keinen Plan...
Unter XLS rufe ich über den Reiter "Entwicklertools" Visual Basic auf - und dann?
Danke
Selter
AW: Ja mit VBA und RegExp
17.02.2009 16:13:00
Renee
Hi Selter,
Ich hab zwar kein 2007, aber ev. sollte das ja ähnlich sein.
Dann rechtsklickst Projektnavigator auf DieseArbeitsmappe und wählst Einfügen Modul
Kopier obigen Code mit Ctrl-C , Ctrl-V in das leere Fenster.
Im VBE Menu unter Extras - Verweise - Microsoft VBScript Regular Expressions suchen und aktivieren.
VBE schliessen und die Formel in der Tabelle ausprobieren.
GreetZ Renée
Anzeige
AW: Ja mit VBA und RegExp
17.02.2009 16:27:00
Selter
Super - Vielen Dank!
RFC 2822 Regular Expression
17.02.2009 16:40:00
Renee
Hi Selter,
Solltest du eine mehr oder weniger offizielle Definition von Email-Adressen gemäss der Definition RFC 2822 testen wollen, kannst du folgenden (ähnlichen Code) benutzen:

Public Function ValidateEmail(ByVal strEmail As String) As Boolean
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
Dim myReg As RegExp
Set myReg = New RegExp
myReg.Pattern = cPatternRFC2822  ' Durch cPatternSmall ersetzen für einfachen Test
myReg.IgnoreCase = True
ValidateEmail = myReg.Test(strEmail)
Set myReg = Nothing
End Function


GreetZ Renée

Anzeige
Natürlich ohne Msgbox (Line löschen owT)
17.02.2009 16:42:00
Renee

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail-Adressen auf Syntax prüfen in Excel


Schritt-für-Schritt-Anleitung

Um E-Mail-Adressen in Excel auf ihre Syntax zu prüfen, kannst du eine benutzerdefinierte Funktion (UDF) in VBA erstellen. Folge diesen Schritten:

  1. Entwicklertools aktivieren: Stelle sicher, dass die Entwicklertools in deinem Excel sichtbar sind. Gehe zu Datei -> Optionen -> Menüband anpassen und aktiviere die Entwicklertools.

  2. VBA-Editor öffnen: Klicke auf Entwicklertools und wähle Visual Basic.

  3. Modul einfügen: Rechtsklicke im Projekt-Explorer auf DieseArbeitsmappe und wähle Einfügen -> Modul.

  4. VBA-Code eingeben: Kopiere den folgenden Code in das leere Modul:

    Public Function ValidateEmail(ByVal strEmail 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
       ValidateEmail = myReg.Test(strEmail)
       Set myReg = Nothing
    End Function
  5. Verweise aktivieren: Im VBE-Menü gehe zu Extras -> Verweise und aktiviere Microsoft VBScript Regular Expressions.

  6. Funktion anwenden: Schließe den VBE und gehe zurück zu Excel. Gib in Zelle B1 die Formel =ValidateEmail(A1) ein, um die E-Mail-Adresse in A1 zu überprüfen. Das Ergebnis wird WAHR sein, wenn die E-Mail-Adresse korrekt ist, andernfalls FALSCH.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"
    Lösung: Überprüfe, ob du die Microsoft VBScript Regular Expressions in den Verweisen aktiviert hast.

  • Fehler: Ungültige Eingabe
    Lösung: Stelle sicher, dass die E-Mail-Adresse in der richtigen Form vorliegt. Achte auf Leerzeichen und Sonderzeichen.

  • Fehler: Ergebnis FALSCH trotz korrekter Adresse
    Lösung: Teste die E-Mail-Adresse mit einem anderen Muster. Manchmal können Umlaute oder spezielle Zeichen Probleme verursachen.


Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du auch Excel-Formeln nutzen, um die Syntax grob zu überprüfen. Ein einfaches Beispiel wäre:

=UND(NICHT(ISTFEHLER(FINDEN("@";A1))); NICHT(ISTFEHLER(FINDEN(".";A1))))

Diese Formel prüft, ob sowohl "@" als auch "." in der E-Mail-Adresse vorhanden sind, bietet jedoch keine umfassende Validierung.


Praktische Beispiele

  1. E-Mail-Adressen mit Umlauten: Du kannst die Funktion so anpassen, dass sie auch Umlaute in E-Mail-Adressen akzeptiert. Ändere das Pattern in der ValidateEmail-Funktion entsprechend:

    myReg.Pattern = "^[a-zA-Z0-9äöüß\-\.]{2,63}@[a-zA-Z0-9äöüß\-\.]{2,63}\.[a-zA-Z]{2,4}$"
  2. RFC 2822 Konformität: Wenn du die E-Mail-Adressen gemäß RFC 2822 validieren möchtest, verwende den folgenden Code:

    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])?"

Tipps für Profis

  • Regex-Optimierung: Experimentiere mit verschiedenen Regex-Mustern, um die Validierung an deine spezifischen Bedürfnisse anzupassen. Die Regex-Tools im Internet können dir dabei helfen, die richtige Syntax zu erstellen.

  • Fehlerprotokollierung: Füge eine Fehlerprotokollierung in deinen VBA-Code ein, um ungültige E-Mail-Adressen zu erfassen und nachzuvollziehen, warum sie abgelehnt wurden.

  • Automatisierung: Du kannst die Validierung auch automatisieren, indem du einen Button in Excel hinzufügst, der die Validierung für alle E-Mail-Adressen in einer bestimmten Spalte durchführt.


FAQ: Häufige Fragen

1. Frage: Wie kann ich E-Mail-Adressen mit Umlauten validieren?
Antwort: Du kannst das Regex-Muster anpassen, um Umlaute zu akzeptieren, wie im Abschnitt "Praktische Beispiele" beschrieben.

2. Frage: Funktioniert dies in Excel 2007?
Antwort: Ja, die oben genannten Schritte sollten auch in Excel 2007 funktionieren. Stelle sicher, dass du die Entwicklertools aktiviert hast.

3. Frage: Gibt es eine Möglichkeit, E-Mail-Adressen ohne VBA zu überprüfen?
Antwort: Ja, du kannst einfache Excel-Formeln verwenden, die jedoch keine vollständige Validierung bieten. Sie können nur grundlegende Syntaxprüfungen durchführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige