Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gültigkeit von Email-Adressen prüfen

Gültigkeit von Email-Adressen prüfen
12.07.2017 10:40:03
Email-Adressen
Guten Tag zusammen
vor längerer Zeit konnte ich - dank der guten Hilfe hier im Forum - einen VBA-Code zusammenbasteln, welcher mir (basierend auf einer Excel-Tabelle) die dort aufgeführten Email-Adressen überprüft ob noch gültig.
D.h. statt jeder einzelnen Email-Adresse ein Testmail zu senden, konnte das kleine VBA-Programm eine Email-Adresse prüfen, resp. eine Email dorthin simulieren. (um zu prüfen ob diese Adresse überhaupt erreichbar wäre)
Leider aber kann ich diesen Code nirgends mehr finden auf meinem PC :-(
kann mir evt. jemand von Euch weiterhelfen ?
Also:
Ich muss wieder einen Code zusammenbauen, der mir - anhand einer Excel-Tabelle mit Email-Adressen drauf prüft/simuliert ob die dort aufgeführten Email-Adressen erreichbar wären.
Besten Dank für Eure Hilfe !
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gültigkeit von Email-Adressen prüfen
12.07.2017 10:43:51
Email-Adressen
Diese?:
Public Function IsValidEMail(S)
Dim Ch As String * 1, I As Long, Ats As Long, Periods As Long
Dim LeftofAt As Boolean, IsLeading As Boolean
IsValidEMail = True
If IsNull(S) Then Exit Function
IsValidEMail = False
LeftofAt = True
IsLeading = True
Periods = 0
Ats = 0
For I = 1 To Len(S)
Select Case Asc(Mid(S, I, 1))
Case Asc("@")
Ats = Ats + 1
' links vom "@" muss wenigstens ein Zeichen sein:
If I = 1 Then Exit Function
' nur ein "@" erlaubt:
If Ats > 1 Then Exit Function
LeftofAt = False
IsLeading = True
Case Asc(".")
' Punkte rechts vom "@" zählen:
If Not LeftofAt Then Periods = Periods + 1
' zu viele Punkte (technisch zwar möglich, aber unwahrscheinlich):
If Periods > 4 Then Exit Function
' Top Level Domain hat weniger als 2 Zeichen:
If I > Len(S) - 2 Then Exit Function
Case Asc("A") To Asc("Z"), Asc("a") To Asc("z"), Asc("0") To Asc("9")
IsLeading = False
Case Asc("-")
' kein führendes "-" erlaubt:
If IsLeading Then Exit Function
Case Asc("_")
' "_" nur links vom "@" erlaubt:
If IsLeading Or Not LeftofAt Then Exit Function
Case Else
' andere Zeichen sind nicht zulässig:
Exit Function
End Select
Next
If Periods > 0 Then IsValidEMail = True
End Function

Anzeige
AW: Gültigkeit von Email-Adressen prüfen
12.07.2017 11:07:46
Email-Adressen
Hallo Aka Tosh
vielen herzlichen Dank für die schnelle Hilfe!
Ich bin mir aber nicht sicher, ob es dieser Code der von mir gesuchte war.
Denn dein Code prüft nur, ob eine Email-Adresse korrekt geschrieben ist, nicht aber, ob eine Email dorthin gesendet werden könnte.
Vielmehr such ich aber eine Möglichkeit zu prüfen, ob die Email-Adresse existiert, ohne dorthin eine Test-Email zu senden.
(natürlich alles interne Email-Adressen von unserem Betrieb)
Anzeige
AW: dann ...
12.07.2017 11:51:37
...
Hallo Pascal,
... hast Du doch alle Mail-Adressen, die Du in einer Liste auch ständig aktuell halten kannst und Du brauchst dann nur noch über diese Liste prüfen, ob es Deine Mailadresse gibt. Das kann man dann sogar ganz einfach ohne VBA auch klären.
Gruß Werner
.. , - ...
;

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
Anzeige

Infobox / Tutorial

Gültigkeit von E-Mail-Adressen prüfen in Excel


Schritt-für-Schritt-Anleitung

Um E-Mail-Adressen in Excel zu überprüfen, kannst du einen VBA-Code verwenden. Hier ist eine einfache Anleitung, wie du dies umsetzen kannst:

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende.

  2. Drücke ALT + F11 um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject", wähle "Einfügen" und dann "Modul".

  4. Kopiere den folgenden Code in das Modul:

    Public Function IsValidEMail(S)
       Dim Ch As String * 1, I As Long, Ats As Long, Periods As Long
       Dim LeftofAt As Boolean, IsLeading As Boolean
       IsValidEMail = True
       If IsNull(S) Then Exit Function
       IsValidEMail = False
       LeftofAt = True
       IsLeading = True
       Periods = 0
       Ats = 0
       For I = 1 To Len(S)
           Select Case Asc(Mid(S, I, 1))
           Case Asc("@")
               Ats = Ats + 1
               If I = 1 Then Exit Function
               If Ats > 1 Then Exit Function
               LeftofAt = False
               IsLeading = True
           Case Asc(".")
               If Not LeftofAt Then Periods = Periods + 1
               If Periods > 4 Then Exit Function
               If I > Len(S) - 2 Then Exit Function
           Case Asc("A") To Asc("Z"), Asc("a") To Asc("z"), Asc("0") To Asc("9")
               IsLeading = False
           Case Asc("-")
               If IsLeading Then Exit Function
           Case Asc("_")
               If IsLeading Or Not LeftofAt Then Exit Function
           Case Else
               Exit Function
           End Select
       Next
       If Periods > 0 Then IsValidEMail = True
    End Function
  5. Schließe den VBA-Editor und kehre zurück zu Excel.

  6. Verwende die Funktion: In einer Zelle kannst du die Funktion wie folgt aufrufen: =IsValidEMail(A1) wobei A1 die Zelle ist, die die zu prüfende E-Mail-Adresse enthält.


Häufige Fehler und Lösungen

  • Fehler: Kompilierungsfehler
    Lösung: Stelle sicher, dass der Code korrekt kopiert wurde. Alle Zeilen sollten vollständig sein.

  • Fehler: Funktion gibt immer FALSCH zurück
    Lösung: Überprüfe, ob die E-Mail-Adresse tatsächlich korrekt formatiert ist. Diese Funktion prüft nur die Syntax, nicht die Existenz.

  • Fehler: Excel hängt sich auf
    Lösung: Achte darauf, dass du die Funktion nicht in einer Zelle für eine große Anzahl von E-Mail-Adressen gleichzeitig verwendest. Teste zuerst mit wenigen.


Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die folgenden Methoden ausprobieren:

  • Datenüberprüfung in Excel: Du kannst die Datenüberprüfung nutzen, um sicherzustellen, dass nur gültige E-Mail-Adressen eingegeben werden. Gehe zu "Daten" > "Datenüberprüfung" und wähle "Benutzerdefiniert". Verwende die Formel =ISTFEHLER(FINDEN("@";A1))=FALSCH, um sicherzustellen, dass das "@" vorhanden ist.

  • Online-Tools: Es gibt diverse Online-Dienste, um E-Mail-Adressen zu validieren. Diese können dir helfen, die Existenz einer E-Mail-Adresse zu überprüfen, allerdings solltest du dabei vorsichtig sein, da Datenschutzbestimmungen zu beachten sind.


Praktische Beispiele

Hier sind einige Beispiele, wie du die E-Mail-Überprüfung in der Praxis anwenden kannst:

  1. Überprüfe eine Liste von E-Mail-Adressen: Erstelle eine Liste in Excel und verwende die Funktion =IsValidEMail(A1) für jede Adresse in der Liste.

  2. Verwende bedingte Formatierung: Du kannst die Zellen, die ungültige E-Mail-Adressen enthalten, farblich hervorheben. Gehe zu "Start" > "Bedingte Formatierung" > "Neue Regel" und wähle "Formel zur Ermittlung der zu formatierenden Zellen verwenden". Verwende die Formel =IsValidEMail(A1)=FALSE.


Tipps für Profis

  • Schnelle Validierung: Wenn du viele E-Mail-Adressen prüfen möchtest, kombiniere die VBA-Funktion mit einer Schleife, um alle Adressen in einem Schritt zu validieren.

  • Erweiterte Prüfungen: Du kannst die Funktion anpassen, um auch spezifische Unternehmensdomänen zu überprüfen, indem du zusätzliche Bedingungen hinzufügst.

  • E-Mail-Listen automatisch aktualisieren: Erstelle eine Excel-Tabelle, die regelmäßig aktualisiert wird, um immer die aktuellen E-Mail-Adressen deines Unternehmens zu verwenden.


FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine E-Mail-Adresse existiert?
Die Funktion IsValidEMail prüft nur die Syntax. Um die Existenz zu prüfen, benötigst du spezielle Tools oder musst eine Test-E-Mail senden.

2. Kann ich auch mehrere E-Mail-Adressen gleichzeitig prüfen?
Ja, indem du die Funktion in mehreren Zellen anwendest. Kopiere die Funktion nach unten, um alle E-Mail-Adressen in der Liste zu überprüfen.

3. Was passiert, wenn die Funktion einen Fehler zurückgibt?
Ein Fehler bedeutet, dass die E-Mail-Adresse nicht korrekt formatiert ist. Überprüfe die Eingabe und stelle sicher, dass sie der üblichen E-Mail-Syntax entspricht.

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