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

Forumthread: E-Mail Adressen aus Quelltext suchen.

E-Mail Adressen aus Quelltext suchen.
07.10.2004 13:15:21
Danny
Hi,
ich wollte ne Tabelle machen die sich aus der Zwischenablage (oder auch aus einer Textbox egal) nen Quelltext von ner Website holt, und dann alle E-Mail adressen rausfiltert.
Es soll also in nem großen String immer nach "@" gesucht werden, dann bis zum rechten leerzeichen, dann das linke leerzeichen finden und string kopieren.
Ich hab mal das gemacht (Ich mache meine Texte immer so komisch :) )
Aber der hängt mir immer schon von anfang an ein Leerzeichen dran, so das die schleife direkt aufhört.
:(
________________________________________________________
Dim Text, at, adresse, position, leerzeichen As String
Dim zahl, links, rechts, n, x, leerzeichen2 As Long
at = "@"
Text = T_import.Text
Text = "Die Email adresse lautet : dannyfaak@yahoo.de "
'Durchsuchen nach @ Zeichen
position = InStr(Text, at)
x = 100
rechts = InStr(position, Text, " ") - 1
For n = 1 To x
adresse = Mid(Text, rechts - n, rechts)

If InStr(1, adresse, "") = 1 Then
n = x
End If
Next n
____________________________________________
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Adressen aus Quelltext suchen.
Danny
Ich blö+++ Id+++ :)
Ich hab die ganze Zeit nach "" und nicht nach " " gesucht. Ahhhhh!.
Danke :)
_________________________________________
For n = 1 To x
adresse = Mid(Text, rechts - n, rechts)
adresse = RTrim$(adresse)
If InStr(1, adresse, " ") = 1 Then
n = x
End If
_________________________________________
(Ich hab bestimmt ne Stunde gerätselt.)
Anzeige
AW: E-Mail Adressen aus Quelltext suchen.
Andre
Hey Danny,
such doch mal nach " "! :-)
Gruß Andre
P.S.: Ist uns allen schon mal passiert!
AW: E-Mail Adressen aus Quelltext suchen.
Danny
Hier nochmal die neue Funktionierende Sub.
Sie durchsucht jeden Text in dem E-Mail-Adressen stehen (zurzeit nur im Format "Leerzeichen+Email+Leerzeichen" nach den Adressen und diese können dann weiterverarbeitet werden.
:)

Sub Import()
'Variablen
Dim SuchText, EmailAdresse, Position, leerzeichen As String
Dim Anfang, Rechts, MailString, EndString, Schleife, Ende, MultiVar As Long
Ende = 0
Anfang = 1
'Suchtext
SuchText = "Die Email adresse lautet : dannyfaak@yahoo.de und peter@peter.de test@test.de "
'@ Zeichen zählen für das Ende
EndString = 3
For MailString = 1 To EndString
EndString = MailString + 1
MultiVar = InStr(Anfang + MailString, SuchText, "@")
Ende = Ende + 1
If InStr(Anfang + MailString, SuchText, "@") < 1 Then
EndString = MailString
End If
Next MailString
'Schleife
Anfang = 1
For Schleife = 1 To Ende
Anfang = Rechts + 1
'@ Zeichen suchen
Position = InStr(Anfang, SuchText, "@")
'Rechten Rand suchen
Rechts = InStr(Position, SuchText, " ") - 1
'Linken Rand suchen und String erstellen
EndString = 100
For MailString = 1 To EndString
EmailAdresse = Mid(SuchText, Rechts - MailString, Rechts - (Rechts - MailString) + 1)
EmailAdresse = RTrim$(EmailAdresse)
If InStr(1, EmailAdresse, " ") = 1 Then
MailString = EndString
End If
Next MailString
EmailAdresse = LTrim$(EmailAdresse)
'Hier wird die E-Mailadresse ausgegeben. (Variable: EmailAdresse) :)
Next Schleife
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail Adressen aus Quelltext filtern in Excel


Schritt-für-Schritt-Anleitung

Um E-Mail Adressen aus einem Quelltext in Excel zu filtern, kannst Du eine VBA-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Import()
    'Variablen
    Dim SuchText, EmailAdresse, Position, leerzeichen As String
    Dim Anfang, Rechts, MailString, EndString, Schleife, Ende, MultiVar As Long
    Ende = 0
    Anfang = 1
    'Suchtext
    SuchText = "Die Email adresse lautet : dannyfaak@yahoo.de und peter@peter.de test@test.de "
    'Schleife für E-Mail Adressen
    EndString = 3
    For MailString = 1 To EndString
        EndString = MailString + 1
        MultiVar = InStr(Anfang + MailString, SuchText, "@")
        Ende = Ende + 1
        If InStr(Anfang + MailString, SuchText, "@") < 1 Then
            EndString = MailString
        End If
    Next MailString
    'E-Mail Adressen extrahieren
    Anfang = 1
    For Schleife = 1 To Ende
        Anfang = Rechts + 1
        Position = InStr(Anfang, SuchText, "@")
        Rechts = InStr(Position, SuchText, " ") - 1
        EndString = 100
        For MailString = 1 To EndString
            EmailAdresse = Mid(SuchText, Rechts - MailString, Rechts - (Rechts - MailString) + 1)
            EmailAdresse = RTrim$(EmailAdresse)
            If InStr(1, EmailAdresse, " ") = 1 Then
                MailString = EndString
            End If
        Next MailString
        EmailAdresse = LTrim$(EmailAdresse)
        'Hier wird die E-Mailadresse ausgegeben. (Variable: EmailAdresse) :)
    Next Schleife
    End Sub
  4. Passe den SuchText an, um die E-Mail Adressen, die Du herausfiltern möchtest, zu definieren.

  5. Führe das Skript mit F5 aus, um die E-Mail Adressen zu extrahieren.


Häufige Fehler und Lösungen

  • Fehler: Das Skript gibt immer ein Leerzeichen aus.

    • Lösung: Stelle sicher, dass Du die Leerzeichen korrekt behandelst, indem Du RTrim$ und LTrim$ verwendest, um die E-Mail Adressen zu bereinigen.
  • Fehler: Keine E-Mail Adressen werden gefunden.

    • Lösung: Überprüfe den SuchText und stelle sicher, dass die E-Mail Adressen im richtigen Format vorliegen (z.B. "Leerzeichen+Email+Leerzeichen").

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch folgende Methoden ausprobieren:

  1. Textfilter: Kopiere den Quelltext in eine Excel-Zelle und verwende die Filterfunktion, um nach "@" zu suchen.
  2. Formeln: Nutze die Funktionen FINDEN und TEIL, um die E-Mail Adressen manuell herauszufiltern. Diese Methode kann jedoch zeitaufwendig sein.

Praktische Beispiele

Hier ist ein Beispiel für einen Quelltext mit mehreren E-Mail Adressen:

Die Email adresse lautet: max.mustermann@mail.de, kontakt@beispiel.com und info@webseite.org.

Verwende den obenstehenden VBA-Code, um alle E-Mail Adressen aus diesem Text zu extrahieren. Der Code wird die Adressen finden und sie zur weiteren Verarbeitung bereitstellen.


Tipps für Profis

  • Nutze reguläre Ausdrücke, um komplexere Muster zu filtern, wenn Du eine Vielzahl verschiedener E-Mail Formate verarbeiten musst.
  • Speichere Deine gefundenen E-Mail Adressen in einer Excel-Tabelle, um sie später leichter verwenden zu können.
  • Berücksichtige, dass E-Mail Adressen auch Zahlen und spezielle Zeichen enthalten können; passe Deinen Code entsprechend an.

FAQ: Häufige Fragen

1. Wie kann ich E-Mail Adressen aus einer großen Menge Text filtern?
Verwende den oben genannten VBA-Code, um eine effiziente E-Mail Adresse Suche in großen Textmengen durchzuführen.

2. Kann ich E-Mail Adressen in eine Excel-Liste kopieren?
Ja, Du kannst die extrahierten E-Mail Adressen in eine Excel-Zelle einfügen, indem Du sie in einer Schleife speicherst und die Ausgaben in eine Zelle schreibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige