E-Mail aus Outlook via Excel auslesen - Betreff mit regulären Ausdrücken ermitteln
Hallo zusammen,
ich komme gerade nicht weiter. Ziel ist es eine Mail aus einen bestimmten Zeitraum und einen bestimmten Betreff auszulesen und in Excel wieder zugeben.
Einen entsprechenden Code hierfür hatte ich bereit gefunden und für einige Sachen angepasst, dass funktioniert auch super.
Jetzt möchte ich aber Mails auslesen, aus einem bestimmten Zeitraum und einen leicht abweichenden Betreff.
Die Mail kommt immer von gleichen Absender. Es handelt sich um eine Weiterleitungsregel aus einen anderen Funktionspostfach. Der Betreff hat immer den identischen Anfang.
"FW: Verarbeitung System Global" danach kommen unterschiedliche Bezeichnungen und ein Datum.
Uwe "Colinardo" hatte mir bei einem ähnlichen Thema schon einmal einen Code geschrieben, wo er reguläre Ausdrücke verwendet hat.
In meinen Fall wäre es wahrscheinlich folgender Ausdruck:
Wie setzte ich den aber in der Schleife ein mit meiner vorhandenen Abfrage:
Sollte der gesamte Code erforderlich sein, dann stelle ich diesen auch gerne hier rein.
Vielen Dank euch schon einmal für Hilfe.
Viele Grüße
Jens
ich komme gerade nicht weiter. Ziel ist es eine Mail aus einen bestimmten Zeitraum und einen bestimmten Betreff auszulesen und in Excel wieder zugeben.
Einen entsprechenden Code hierfür hatte ich bereit gefunden und für einige Sachen angepasst, dass funktioniert auch super.
Jetzt möchte ich aber Mails auslesen, aus einem bestimmten Zeitraum und einen leicht abweichenden Betreff.
Die Mail kommt immer von gleichen Absender. Es handelt sich um eine Weiterleitungsregel aus einen anderen Funktionspostfach. Der Betreff hat immer den identischen Anfang.
"FW: Verarbeitung System Global" danach kommen unterschiedliche Bezeichnungen und ein Datum.
Uwe "Colinardo" hatte mir bei einem ähnlichen Thema schon einmal einen Code geschrieben, wo er reguläre Ausdrücke verwendet hat.
In meinen Fall wäre es wahrscheinlich folgender Ausdruck:
regex.Pattern = "(FW: Verarbeitung System Global)"
Wie setzte ich den aber in der Schleife ein mit meiner vorhandenen Abfrage:
'Beginn Schleifendurchlauf (Schleife 1) -> die Variable 'i' läuft solange, wie Anzahl der EMails vorhanden sind
While i < AnzahlEmail
i = i + 1
'
'Anzeigen einer Nachricht in der Statuszeile
Application.StatusBar = "Lese Posteingang " & _
Format(i / AnzahlEmail, "0%")
'Was soll mit den Nachrichten geschehen? (Schleife 2)
With olOrdner.Items(i)
If .Subject = "FW: Verarbeitung System Global" Then
Email = Email + 1
'Zelle 1 mit dem Wert Betreff in der EMail
Cells(Email + 1, 1).Value = .Subject
'Zelle 2 mit dem Wert 'Empfangen am' in der EMail
Cells(Email + 1, 2).Value = .ReceivedTime
'Zelle 3 Absender
Cells(Email + 1, 3).Value = .SenderName
'Zelle 4 der gelesenen Nachrichten
Cells(Email + 1, 4).Value = Not .UnRead
'Zelle 5 mit der eigentlichen Nachricht
Cells(Email + 1, 5).Value = .Body
'Zelle 6 -> Anzahl der Anhänge in der EMail
Cells(Email + 1, 6).Value = .Attachments.Count
End If
'Ende der Schleife 2
Debug.Print Email
End With
'Ende der Schleife 1
Wend
Sollte der gesamte Code erforderlich sein, dann stelle ich diesen auch gerne hier rein.
Vielen Dank euch schon einmal für Hilfe.
Viele Grüße
Jens
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 364881
Url: https://administrator.de/contentid/364881
Ausgedruckt am: 16.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Regular Expressions
Gruß Snap
Wie setzte ich den aber in der Schleife ein mit meiner vorhandenen Abfrage:
In der Schleife hier in zwischen Zeile 11 und 12, den Test einbauen mitregex.Pattern = "^FW: Verarbeitung System Global"
if regex.Test(.Subject) then
' ...... hier weiter wenn Regex zutrifft
End if
Zitat von @kaiuwe28:
Kannst du mir eigentlich sagen, was das Test da bedeutet? Ist das eine feste Variable?
Das ist eine Funktion des Regex Objektes welche einen Boolean Wert zurückgibt, True wenn der Regex zutrifft, False wenn nicht.Kannst du mir eigentlich sagen, was das Test da bedeutet? Ist das eine feste Variable?