Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Outlook bestimmte E-Mails auslesen
24.07.2018 15:32:23
Mathias
Hallo,
ich suche jetzt schon seit längerem einen VBA Code, um bestimmte E-Mails (an einem bestimmten Tag und mit einem bestimmten Betreff) auslesen zu können. Mein VBA Code bisher schafft es lediglch alle E-Mails aus Posteingang/-Ausgang zu extrahieren. Gibt es da eine Möglichkeit über eine UserForm ein bestimmtes Datum auszuwählen und dann eventuell den zugehörigen Betreff?! Wäre echt super, wenn ihr mir helfen könnntet. Leider sind meine VBA Kenntnisse nicht so ausgeprägt.
Das wäre echt super, ich brauche dies beruflich, da wir bestimmte Postein-und Ausgänge dokumentieren müssen.
Meinen bisherigen VBA-Code habe ich aus dem Internet und auf mein Outlook angepasst:
Public Sub ReadMailItems()
Dim olapp        As Object
Dim olName       As Object
Dim olHFolder    As Object
Dim olUFolder    As Object
Dim Mail As MailItem
Dim Sender As String
Dim strAttCount  As String
Dim olItemsCount As Long
Dim lngAttCount  As Long
Dim letzteZeile  As Long
On Error Resume Next
Set olapp = CreateObject("Outlook.Application")
Set olName = olapp.GetNamespace("MAPI")
Set olHFolder = olName.Session.Folders("Kontoname") ' Kontoname
Set olUFolder = olHFolder.Folders("Posteingang") 'Ordnername
letzteZeile = Sheets("Master").Range("A" & Rows.Count).End(xlUp).Row
For olItemsCount = 1 To olUFolder.Items.Count
With olUFolder.Items.Item(olItemsCount)
For lngAttCount = 1 To .Attachments.Count
If strAttCount = "" Then
strAttCount = .Attachments.Item(lngAttCount).Filename
Else
strAttCount = strAttCount & vbCrLf & .Attachments.Item(lngAttCount).  _
_
Filename
End If
Next lngAttCount
Sheets("Master").Range("A" & olItemsCount + letzteZeile).Value = olHFolder. _
Name & "->" & olUFolder.Name
Sheets("Master").Range("B" & olItemsCount + letzteZeile).Value = Mail. _
SenderEmailAddress
Sheets("Master").Range("C" & olItemsCount + letzteZeile).Value = . _
SenderEmailAddress
Sheets("Master").Range("D" & olItemsCount + letzteZeile).Value = .ReceivedTime
Sheets("Master").Range("E" & olItemsCount + letzteZeile).Value = .Subject
Sheets("Master").Range("F" & olItemsCount + letzteZeile).Value = strAttCount
strAttCount = ""
End With
Next olItemsCount
On Error GoTo 0
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook bestimmte E-Mails auslesen
29.07.2018 05:56:13
fcs
Hallo Mathias,
ich hab mich mit deiner Frage/Problem mal beschäfftigt und in einer Testdatei dein Makro umgestrickt, so dass die Daten aller E-Mails in dem Ordner/den Ordnern in ein Daten-Array geschrieben werden statt in das Tabellenblatt "Master".
Danach wird ein Userform geöffnet in dem du Start-Datum + Startzeit eingeben kannst, sowie den Suchtext für den Betreff. Den Suchtext kannst du über eine Combobox mit den vorhandenen Betrefft-Texten auswählen oder direkt in die Textbox eingeben bzw. nach Combobox-Auswahl editieren.
Alle Mails, deren Send-/Empfangs-Datum &gt= dem Startdatum/-Zeit sind und im Betreff den Suchtext enthalten werden ins Tabellenblatt "Master" geschrieben.
Mir war jetzt nicht klar, welche Mail-Information du in die Spalte B schreiben willst - Ich hab mich für den/die Empfänger der Mail (To-Feld der E-Mail-Daten) entschieden.
Das Makro "ReadMailItems" ist bereits vorbereited für das Durchsuchen mehrerer Outlook-Ordner in einer For-Next-Schleife. Siehe Kommentare im Code zur Anpassung.
https://www.herber.de/bbs/user/122975.xlsm
Gruß
Franz
Anzeige

204 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige