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
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
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
Um E-Mail-Adressen in Excel auf ihre Syntax zu prüfen, kannst du eine benutzerdefinierte Funktion (UDF) in VBA erstellen. Folge diesen Schritten:
Entwicklertools aktivieren: Stelle sicher, dass die Entwicklertools in deinem Excel sichtbar sind. Gehe zu Datei -> Optionen -> Menüband anpassen und aktiviere die Entwicklertools.
VBA-Editor öffnen: Klicke auf Entwicklertools und wähle Visual Basic.
Modul einfügen: Rechtsklicke im Projekt-Explorer auf DieseArbeitsmappe und wähle Einfügen -> Modul.
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
Verweise aktivieren: Im VBE-Menü gehe zu Extras -> Verweise und aktiviere Microsoft VBScript Regular Expressions.
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.
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.
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.
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}$"
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])?"
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.
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.