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

Text aus E-Mail auslesen und in Excel einfügen

Forumthread: Text aus E-Mail auslesen und in Excel einfügen

Text aus E-Mail auslesen und in Excel einfügen
03.03.2008 14:29:00
S.G.
Hallo,
ich möchte aus weitergeleiteten E-Mails die E-Mailadresse und den Betreff auslesen und in ein Excelsheet kopieren.
Die Struktur der weitergeleiteten E-Mail sieht wie folgt aus:
Your message
To: bla.blabla@bla.com
Subject: bla blablablablabla usw usw usw.
Sent: Thu, 28 Feb 2008 15:04:24 +0100
did not reach the following recipient(s):
bla.blabla@bla.com on Thu, 28 Feb 2008 23:42:36 +0100
Fehler bei der SMTP-Kommunikation mit dem E-Mail-Server des
Empfängers. Wenden Sie sich an Ihren Systemadministrator.
usw...
Frage: Hat jemand einen Tipp, wie ich das umsetzen kann?
Problem: Da die E-Mails weitergeleitet sind, kann ich die Mailitems wie bspw. SenderEmailAddress usw. nicht verwenden. Die Adresse muss ich irgendwie als Text auslesen.
Im Forum bin ich auf diesen interessanten code gestoßen, den man glaube ich nur "ein bißchen" abändern muss, um zum Ziel zu gelangen:
siehe https://www.herber.de/mailing/182302h.htm
In diesem Beispiel wird der Text jeder einzelnen E-Mail ausgelesen und in ein neues Excel-Tabellenblatt eingefügt.
Da ich ziemlich viele E-Mails habe funktioniert das so nicht mehr. Außerdem würde es genügen nur die E-Mailadresse und den Betreff auszulesen.
Ein kleiner Hinweis wäre super!
Vielen Dank schonmal!
Gruß
S.G.

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text aus E-Mail auslesen und in Excel einfügen
03.03.2008 19:04:00
Tino
Hallo,
habe den von dir vorgeschlagene Code etwas angepasst.
Vielleicht hilft dir dies bei deinem Problem.
Bei Text = kommt der Text rein der in der Mail vorkommt.

Sub GrapText()
Dim objOutlook As Object
Dim objnSpace As Object
Dim objFolder As Object
Dim objMsg As Object
Dim intCounter As Integer, intCount As Integer, iRow As Integer
Dim sTxt As String
Dim Text As String
'   hier der Text der in der EMail vorkommt
Text = "Wenden Sie sich an Ihren Systemadministrator"
Application.ScreenUpdating = False
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.folders("Persönliche Ordner").folders("Gesendete Objekte")
intCount = objFolder.Items.Count
If intCount > 0 Then
For intCounter = 1 To intCount
Set objMsg = objFolder.Items(intCounter)
If InStr(1, objFolder.Items(intCounter).body, Text) > 0 Then
Worksheets.Add after:=Worksheets(Worksheets.Count)
objMsg.SaveAs ThisWorkbook.Path & "\temp.txt", olTXT
Close
iRow = 0
Open ThisWorkbook.Path & "\temp.txt" For Input As #1
Do Until EOF(1)
iRow = iRow + 1
Line Input #1, sTxt
Cells(iRow, 1).Value = "'" & sTxt
Loop
Close
End If
Next intCounter
Kill ThisWorkbook.Path & "\temp.txt"
End If
Set objnSpace = Nothing
Set objFolder = Nothing
Set objMsg = Nothing
Set objOutlook = Nothing
End Sub


Gruß Tino

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

E-Mails in Excel einfügen: So liest du E-Mail-Adressen und Betreff aus


Schritt-für-Schritt-Anleitung

Um E-Mail-Adressen und Betreff aus weitergeleiteten E-Mails in Excel zu extrahieren, folge diesen Schritten:

  1. Öffne Excel und aktiviere den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deinWorkbookName)“ und wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub GrapText()
       Dim objOutlook As Object
       Dim objnSpace As Object
       Dim objFolder As Object
       Dim objMsg As Object
       Dim intCounter As Integer, intCount As Integer, iRow As Integer
       Dim sTxt As String
       Dim Text As String
    
       ' Hier den Text der in der E-Mail vorkommt angeben
       Text = "Wenden Sie sich an Ihren Systemadministrator"
       Application.ScreenUpdating = False
       Set objOutlook = CreateObject("Outlook.Application")
       Set objnSpace = objOutlook.GetNamespace("MAPI")
       Set objFolder = objnSpace.folders("Persönliche Ordner").folders("Gesendete Objekte")
       intCount = objFolder.Items.Count
    
       If intCount > 0 Then
           For intCounter = 1 To intCount
               Set objMsg = objFolder.Items(intCounter)
               If InStr(1, objFolder.Items(intCounter).body, Text) > 0 Then
                   Worksheets.Add after:=Worksheets(Worksheets.Count)
                   objMsg.SaveAs ThisWorkbook.Path & "\temp.txt", olTXT
                   Close
                   iRow = 0
                   Open ThisWorkbook.Path & "\temp.txt" For Input As #1
                   Do Until EOF(1)
                       iRow = iRow + 1
                       Line Input #1, sTxt
                       Cells(iRow, 1).Value = "'" & sTxt
                   Loop
                   Close
               End If
           Next intCounter
           Kill ThisWorkbook.Path & "\temp.txt"
       End If
    
       Set objnSpace = Nothing
       Set objFolder = Nothing
       Set objMsg = Nothing
       Set objOutlook = Nothing
    End Sub
  4. Passe den Code an:

    • Stelle sicher, dass der Text in der Variablen Text dem entspricht, was du aus der E-Mail extrahieren möchtest.
  5. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle GrapText und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: „Objekt nicht gefunden“
    Lösung: Stelle sicher, dass der Ordnername „Persönliche Ordner“ und „Gesendete Objekte“ korrekt ist. Überprüfe auch, ob Outlook geöffnet ist.

  • Fehler: Keine Daten werden in Excel eingefügt
    Lösung: Überprüfe, ob der Text in der E-Mail tatsächlich mit dem angegebenen Text übereinstimmt.


Alternative Methoden

Falls der VBA-Code nicht deinen Anforderungen entspricht, kannst du auch folgende Methoden in Betracht ziehen:

  • Power Query: Verwende Power Query in Excel, um Daten aus E-Mails zu importieren, sofern du Zugriff auf den E-Mail-Server hast.

  • Manuelle Kopie: Wenn es sich um wenige E-Mails handelt, kannst du die E-Mail-Adresse und den Betreff manuell kopieren und in Excel einfügen.


Praktische Beispiele

Wenn du zum Beispiel regelmäßig E-Mails von einem bestimmten Absender erhältst, kannst du den Text „Wenden Sie sich an Ihren Systemadministrator“ durch den spezifischen Betreff oder die E-Mail-Adresse ersetzen, um nur relevante E-Mails auszulesen.


Tipps für Profis

  • Automatisierung: Automatisiere den Prozess, indem du einen Zeitplan für die Ausführung deines Makros einrichtest, um regelmäßig E-Mails in Excel einzufügen.

  • Datenvalidierung: Implementiere Datenvalidierungsregeln in Excel, um sicherzustellen, dass nur korrekte E-Mail-Adressen und Betreffzeilen erfasst werden.


FAQ: Häufige Fragen

1. Kann ich E-Mails aus anderen Ordnern importieren?
Ja, du musst lediglich den Ordnernamen im VBA-Code anpassen.

2. Funktioniert dieses Verfahren auch mit anderen Excel-Versionen?
Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und neuer.

3. Was muss ich tun, wenn ich mehrere E-Mail-Adressen gleichzeitig verarbeiten möchte?
Du kannst den Code so anpassen, dass er mehrere Suchbegriffe in einer Schleife durchläuft und die entsprechenden E-Mail-Adressen und Betreffzeilen speichert.

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