Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Email an bestimmter Stelle Auslesen
#1
Exclamation 
Hallo Leute, ich bin der neue und ich bin Hobby Scripter.
Bedeutet ich hab das nicht gelernt, nicht Studiert und nix. Also habt bitte nachsehen wenn ich Eure Fachantworten und Fachfragen nicht auf anhieb verstehe Smile
Also mein Problem ist ich habe Outlook Emails welche ich gerne Auslesen würde. Die Mails sind alle immer gleich aufgebaut vom "Body" her. In jeder Zeile steht ein bestimmtes Schlagwort mit : Endung z.b. " 

Betrag: 3210,23€
VZ: Umbuchung
Ref.: 7687654
Datum: 22.01.2021

So nun möchte ich diese Mail mit Excel VBA Auslesen und die Einzelnen Daten in eine Tabelle zur weiteren Bearbeitung Speichern.

Geschafft hab ich schon das ich den Absender, das Mail Datum den Betreff und auch den gesamten Body auslesen kann. Mein Problem ist ich möchte jedoch nicht den gesamt Body auslesen sondern jeweils Zeile für Zeile nur die Werte nach dem : und dann wieder die nächste Zeile den wert nach dem :.

Also kann mir da einer mal eine kleine Hilfe geben und ist das überhaupt möglich?

Vielen Dank schon mal für eure Mühe und Hilfe.
Antworten Top
#2
Hallo,

hier mal eine grobe Idee, wie Du das umsetzen könntest.
Es wird angenommen, dass die Zeilen im HTML-Body mit CRLF abschließen und Du die Auswertungen untereinander haben möchtest.
Aber kann man ja anpassen.

Code:

Sub Test1()
  Dim sBody As String
  Dim sArr() As String, sArr2() As String
  Dim i As Integer, iZeile As Long

  sBody = Email.body     ' hier den eMail-Body übergeben

  sArr = Split(sBody, vbCrLf)
  For i = 0 To UBound(sArr)
     sArr2 = Split(sArr(i), ":")
     If UBound(sArr2) > 0 Then
       iZeile = iZeile + 1
       Cells(iZeile, "A").Value = sArr2(0)
       Cells(iZeile, "B").Value = sArr2(1)
     End If
   Next i
  
End Sub

_________
viele Grüße
Karl-Heinz
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste