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

Forumthread: Email -Inhalt auslesen und Wert in Excel übernehme

Email -Inhalt auslesen und Wert in Excel übernehme
06.08.2014 20:47:39
Rene
Hallo,
ich erhalte in einem E-Mail Postfach, nennen wir den Ordner einfach mal XYZ
mehrfach täglich E-Mails. Diese E-Mails haben verschiedene Inhalte und verschiedene Betreffzeilen.
In einer Exceldatei habe ich jeweils Arbeitsblätter für die Monate Januar bis Dezember. Sagen wir in jedem Arbeitsblatt, stehen in den Zeilen A10,A11 und A12 immer 3 Begriffe. Rechts davon in den Spalten gibt es für jeden Tag eine Spalte.
Nehmen wir zum Testen einfach
Data  | 06.08. |  07.08. | 08.08. | 09.08. | 10.08. usw.
Test1 |        |         |        |        |
Test2 |        |         |        |        |
Test3 |        |         |        |        |

In den E-Mails erhalte ich einen Text mit einer Tabelle. Dort können ebenfalls die Namen
Test1
Test2
Test3
auftauchen. Müssen aber nicht.
Nun durchforste ich immer die E-Mails mit einem bestimmten Betreff. Nennen wir ihn hier einfach mal ABCD immer manuell nach den Daten und übertrage diese anschließend, sofern einer oder mehrere der Begriffe vorkommen ebenfalls händisch in die dafür vorgesehenen Zellen. Hierbei jedoch immer in die für das Datum notwendige Spalte
Gibt es eine Möglichkeit das die E-Mails automatisch per Marko
nach Betreff
nach Datum
sowie nach Textinhalt 

durchsucht werden und anschließend der Wert der neben dem
Test1
Test2
Test3

steht automatisch an Hand des Datums in die richtige Spalte und das richtige Arbeitsblatt übertragen wird?
Anschließend sollen die betroffenen E-Mails, welche abgearbeitet wurden gelöscht oder ggf. in einen anderen Ordner verschoben werden.
Nun zu meiner Frage.
Mal als Beispiel:
Eine E-Mail vom 05.06.2014 mit dem Betreff ABCD enthält den Eintrag
Test1 454545
Test2 787545
Test3 123545
Jetzt sollen diese Datei in das Arbeitsblatt Juli an die Position
A10
A11
A12 

der Spalte 05.06. übertragen werden.
Irgendwie klingt es recht kompliziert. Ich hoffe ihr könnt nachvollziehen was ich meine. Bisher fehlt mir der Ansatz um das mal zu versuchen. Bevor es vielleicht doch nicht möglich ist, einfach mal die Frage ob es funktionieren würde und ob ihr vielleicht einen Ansatz hättet.
Danke

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email -Inhalt auslesen und Wert in Excel übernehme
08.08.2014 18:02:19
Michael
Hallo Rene,
zumindest mal eine allgemeine Antwort ins Blaue (bloß raus bei dem Wetter!):
Lies vielleicht das da: http://www.office-loesung.de/ftopic371_0_0_asc.php
samt den entsprechenden Kommentaren, insbesondere zur Ordnerauswahl: das erfordert weitere Recherche.
In der Schleife
With OLF.Items(i)
werden *alle* vorhandenen mails gelesen und in die Tabelle geschrieben. Das Lesen läßt sich vielleicht nicht vermeiden (außer Du findest was im Netz)(ich selbst habe 0 Ahnung von OL), aber vor dem Schreiben kannst Du den Betreff und evtl. den Inhalt abfragen und nur die speichern, die Du benötigst.
Der eigentliche email-Text steht in Spalte 5 (also E), den mußte halt auseinanderdröseln, z.B. mit Selection.TextToColumns (das zeichnest Du am besten mit dem Makrorekorder auf), nennt sich auf deutsch "Text in Spalten".
Happy Exceling,
Michael
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail-Inhalt automatisch in Excel übertragen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und 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 im Projekt-Explorer auf "VBAProject (DeinWorkbookName)" > Einfügen > Modul.
  3. Füge den folgenden VBA-Code ein:

    Sub EmailDatenImportieren()
       Dim olApp As Object
       Dim olNs As Object
       Dim olFolder As Object
       Dim olItem As Object
       Dim i As Integer
       Dim ws As Worksheet
    
       Set olApp = CreateObject("Outlook.Application")
       Set olNs = olApp.GetNamespace("MAPI")
       Set olFolder = olNs.GetDefaultFolder(6) ' 6 = Posteingang
       Set ws = ThisWorkbook.Sheets("Juli") ' Arbeitsblatt anpassen
    
       For i = 1 To olFolder.Items.Count
           Set olItem = olFolder.Items(i)
           If olItem.Subject = "ABCD" Then
               ' Hier den Text analysieren und in Excel einfügen
           End If
       Next i
    End Sub
    • Dieser Code durchforstet die E-Mails im Posteingang nach dem Betreff "ABCD" und kann dann später erweitert werden, um die Daten aus der E-Mail auszulesen und in das Excel-Arbeitsblatt zu übertragen.
  4. Speichere und schließe den VBA-Editor:

    • Drücke CTRL + S und schließe den VBA-Editor.
  5. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle EmailDatenImportieren aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden":

    • Stelle sicher, dass der Postfachordner korrekt angegeben ist.
  • Fehler: "Keine Berechtigung":

    • Überprüfe deine Outlook-Berechtigungen und ob Excel mit den richtigen Rechten ausgeführt wird.
  • Daten werden nicht übertragen:

    • Achte darauf, dass die E-Mails den erwarteten Betreff haben und die Struktur der E-Mail korrekt ist.

Alternative Methoden

  • Power Query: Du kannst Power Query verwenden, um Daten aus E-Mails zu importieren. Dies erfordert jedoch eine andere Herangehensweise und einige Kenntnisse in Power Query.

  • Drittanbieter-Tools: Es gibt Tools, die speziell dafür entwickelt wurden, um Daten aus E-Mails in Excel zu importieren. Diese Tools bieten oft eine benutzerfreundliche Oberfläche.


Praktische Beispiele

  • Einfaches Beispiel: Angenommen, du hast eine E-Mail mit folgendem Inhalt:

    Test1 454545
    Test2 787545
    Test3 123545

    In diesem Fall kannst du den VBA-Code so anpassen, dass er diese Werte in die entsprechenden Zellen in Excel überträgt.

  • Komplexeres Beispiel: Wenn du mehrere E-Mails mit unterschiedlichen Betreffzeilen hast, kannst du eine Schleife implementieren, die durch die E-Mails iteriert und die Daten entsprechend überträgt.


Tipps für Profis

  • Makro aufzeichnen: Nutze den Makrorekorder in Excel, um häufige Aufgaben zu automatisieren. Dies kann dir helfen, den VBA-Code besser zu verstehen.

  • Fehlerbehandlung einfügen: Integriere Fehlerbehandlungsroutinen in deinen VBA-Code, um bessere Rückmeldungen zu erhalten, falls etwas schiefgeht.

  • E-Mail-Filter: Verwende Filter, um nur relevante E-Mails zu durchsuchen und die Effizienz des Codes zu erhöhen.


FAQ: Häufige Fragen

1. Wie kann ich die Daten aus E-Mails in Excel importieren? Du kannst VBA verwenden, um E-Mails nach bestimmten Kriterien zu durchsuchen und die Daten in Excel zu übertragen.

2. Funktioniert dieser Prozess mit jeder Excel-Version? Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, insbesondere ab Excel 2010.

3. Was ist, wenn ich mehrere E-Mail-Konten habe? Du musst den entsprechenden Postfachordner im VBA-Code anpassen, um die E-Mails aus dem gewünschten Konto zu durchsuchen.

4. Kann ich den Code anpassen? Ja, der Code kann angepasst werden, um spezifische Anforderungen zu erfüllen, wie z.B. das Einlesen der Inhalte aus einer bestimmten Tabelle in der E-Mail.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige