Guten Morgen ihr Lieben,
ich melde mich zurück. Mal wieder mit einem besonderen Anliegen. Ich bin gerade dabei ein Makro zu schreiben welches Daten aus dem Outlook Eingang in die Excel überträgt. Soweit habe ich das hingekommen und er schreibt die 1A rüber (stolz)
Aber ich bin noch nicht glücklich.
In dem Email Body findet sich dann sobald der Betreff stimmt (das wird ja gefiltert) immer eine Tabelle die wie folgt aussieht
Item number
|
Revision
|
Batch number
|
Transfer quantity
|
ID's
|
hier stehen dann eben die Zeilen mit den Daten.
Ihr werdet es ahnen. Ich würde die jetzt gerne direkt so in die Tabelle übernehmen dass eben in Spalte E die Item Number steht in Spalte F die Revision,......
Mein Code sieht bisher so aus, dass er den gesamten Body in ein Feld schreibt und ich schaff es nicht die einzelnen Spalten aus der Email auzulesen. Ist das überhaupt direkt möglich oder wäre es besser den Body auf einmal zu holen und dann im Nachgang in exel nochmal zu sortieren?
Hinweis: In B1 steht der Betreff nach welchem er die E-Mails sucht
Sub getDataFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox)
i = 1
For Each OutlookMail In Folder.Items
If OutlookMail.Subject = Range("B1").Value Then
Range("email_Subject").Offset(i, 0).Value = OutlookMail.Subject
Range("email_Subject").Offset(i, 0).Columns.AutoFit
Range("email_Subject").Offset(i, 0).VerticalAlignment = xlTop
Range("email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("email_Date").Offset(i, 0).Columns.AutoFit
Range("email_Date").Offset(i, 0).VerticalAlignment = xlTop
Range("email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
Range("email_Sender").Offset(i, 0).Columns.AutoFit
Range("email_Sender").Offset(i, 0).VerticalAlignment = xlTop
Range("email_Body").Offset(i, 0).Value = OutlookMail.Body
Range("email_Body").Offset(i, 0).Columns.AutoFit
Range("email_Body").Offset(i, 0).VerticalAlignment = xlTop
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
Danke schonmal an dieser Stelle
Grüße Michael
|