Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2...

Diskutiere und helfe bei Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2... im Bereich Microsoft Office im Windows Info bei einer Lösung; Hallo zusammen, ich werkele an ein einem VBA-Makro um eingende Plain/Text-Emails als HTML-Emails abzuspeichern. (Intern wandelt Outlook ja bereits... Dieses Thema im Forum "Microsoft Office" wurde erstellt von JB_forumaccount, 10. Juni 2018.

  1. Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2...


    Hallo zusammen,


    ich werkele an ein einem VBA-Makro um eingende Plain/Text-Emails als HTML-Emails abzuspeichern. (Intern wandelt Outlook ja bereits automatisch um, wie ich auf halbem Weg festgestellt habe.)


    Dabei sind mir zwei merkwürdige Sachen aufgefallen:

    Bei jeder eingegangenen Mail ist MailItem.BodyFormat = 1, also Plain/Text, auch wenn die Mail als HTML gesendet wurde.

    Öffne ich manuell eine Plain/Text-Mail, wähle Nachricht bearbeiten, ändere das Format auf HTML und speichere die Nachricht, so liegt sie korrekt als HTML vor. Setze ich die Eigenschaft (MailItem.BodyFormat) aber per Makro auf HTML (olFormatHTML = 2), so geht der Nachrichtentext komplett verloren. Stattdessen sind in der E-Mail nur noch ? und andere Sonderzeichen zu sehen.

    Ich hoffe, jemand findet den Fehler und kann mir weiterhelfen.


    Viele Grüße

    Jens


    PS: Bitte keine "Antworten" wonach das nicht ginge, kommerzielle Anbieter wie "Bells & Whistles" zeigen, dass es geht. ;-)

    Hier mein Code:


    Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Dim arr() As String
    Dim i As Integer
    Dim ns As Outlook.NameSpace
    Dim itm As MailItem
    Dim MailItem As Outlook.MailItem
    On Error Resume Next
    Set ns = Application.Session
    arr = Split(EntryIDCollection, ",")
    For i = 0 To UBound(arr)
    Set itm = ns.GetItemFromID(arr(i))
    If itm.Class = olMail Then
    Set MailItem = itm
    'MailItem.Parent.Display
    'MailItem.Parent.Activate

    ' Zeige Informationen über die eingegangene Mail um sicherzugehen, dass die richtige Mail bearbeitet wird und um ihre Eigenschaften zu sehen:
    MessageInfo = "" & _
    "Sender : " & MailItem.SenderEmailAddress & vbCrLf & _
    "Sent : " & MailItem.SentOn & vbCrLf & _
    "Received : " & MailItem.ReceivedTime & vbCrLf & _
    "Subject : " & MailItem.Subject & vbCrLf & _
    "Size : " & MailItem.Size & vbCrLf & _
    "BodyFormat :" & MailItem.BodyFormat & vbCrLf & _
    "Message HTML-Body : " & vbCrLf & MailItem.HTMLBody & _
    "Message Text-Body : " & vbCrLf & MailItem.Body
    MsgBox ("Neue Mail empfangen - Sub Application_NewMailEx" & vbCrLf & MessageInfo)
    ' Die MsgBox zeigt:
    ' 1) MailItem.BodyFormat ist immer = 1!
    ' 2) MailItem.HTMLBody ist auch bei Text/Plain gefüllt - Outlook erzeugt automatisch einen HTML-Body

    ' Jetzt das Format der Mail in HTML ändern -> Sicherheitshalber nur wenn der Betreff die Mail als Testmail ausweist!
    If MailItem.BodyFormat = olFormatPlain And MailItem.Subject = "AW: test - lösch mich" Then ' Merkwürdigerweise ist BodyFormat immer = 1 (olFormatPlain)
    MailItem.BodyFormat = olFormatHTML ' Das Ändern von MailItem.BodyFormat führt zu einer E-Mail voller ? -> der Mailinhalt geht komplett verloren!
    MailItem.Save
    MailItem.Display ' Nur zum Erleichtern der Tests -> später entfernen!
    ' -> Neue Erkenntnis! -> Der Mailinhalt geht erst NACH Schließen des mit MailItem.Display geöffneten Fensters verloren! (bzw. sofort, falls MailItem.Display nicht ausgeführt wird)
    End If
    End If
    Next
    Set ns = Nothing
    Set itm = Nothing
    Set MailItem = Nothing
    End Sub
     
  2. Diego_B Win User

    Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2 zerstört den Body

  3. G.O.Tuhls Win User

    Erstellung Schaltfläche in Word

    Dazu brauchst Du ein Makro, das die Daten für die Schritte 2 und 3 generiert, um dann Schritt 1 auszuführen. Wie gut bist Du in VBA?
    <br />Gruß
    <br />G. O.
    <br />
  4. G.O.Tuhls Win User

    Hinweis für andere Nutzer des Dokumentes

    Das Makro muss
    Document_Open
    heißen. AutoOpen geht auch, allerdings hat Word in den aktuellen Updates Probleme damit und lässt das immer zweimal laufen.

    Gruß

    G.O.
  5. Dieter_HH Win User

    Wie kann ich in Excel per Funktion teile aus Arbeitsblättern kopieren

    Hallo Claus,

    eigentlich möchte ich bei VBA bleiben. Nachdem ich das VBA-Makro ausführlich getestet habe, bleiben in meiner Version 2 Sachverhalte offen:

    1. Wenn ich mehrfach ausführe, dann werden immer neue Summen und Ergebnisse angefügt. Vorschlag: Wäre es möglich, dass -falls vorhanden- die neuen Tabellen "Konto1" und "Konto2" am Beginn einer Ausführung immer gelöscht und neu angelegt werde? Oder kann man
      vielleicht zu Beginn immer den gesamten Inhalt löschen?
    2. Bei Konto1 habe ich in der ersten angelisteten Zeile immer die erste gefilterten Zeile von Konto2. Das ist für mich unerklärlich.
    Zusätzliche Frage: Kann ich möglicherweise die Ausführung des VBA-Makros über einen Schalter in Tabelle1 starten? Oder gibt es eine andere elegante Lösung, damit der Anwender von Tabelle1 leicht die Ausführung starten kann. Voraussetzung wäre, dass die Einträge
    vorher gelöscht werden (siehe Pkt. 1)

    Gruß Dieter
  6. JürgenWeinberger Win User

    Kill-Befehl in Excel 2013 sorgt für Abbruch

    Hallo Andreas

    Danke für den Tipp.....also bevor ich mich jetzt auch noch mit VBA rumschlage würde ich fast dazu neigen die Datei nach dem Export manuell mit nur einem Tastenanschlag zu löschen. Das geht nämlich ohne Probleme über den Explorer. Auch Excel 2003 hat mit
    dem Makro keine Probleme. Ich verstehe einfach nicht wieso dass nur in Excel 2013 aufkeimt?

    Genau da schlummert mein Problem....unsere Mitarbeiter nutzen unterschiedliche Office-Varianten. Ein Makro muss also derzeit noch über unterschiedliche Office-Varianten auszuführen sein, was bis Dato auch immer toll funktioniert hat.
  7. User Advert


    Hi,

    willkommen im Windows Forum!
Thema:

Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2... - Microsoft Office

Die Seite wird geladen...

Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2... - Similar Threads - Probleme VBA Makro

Forum Datum

Office 365 VBA-Makro

Office 365 VBA-Makro: Hallo, Word-Datei Office 365 mit eigenem VBA-Makro lässt sich nicht bearbeiten. Mitgeteilt wird, "Microsoft hat die Ausführung von Makros blockiert, da die Quelle dieser Datei nicht...
Microsoft Office 18. April 2023

Excel VBA / Makro Zoomen

Excel VBA / Makro Zoomen: Hallo Zusammen,1.Ich würde gerne per VBA / Makro Button alle Tabellenblätter per click z.B. auf 100% Zoomen Folgenden Code Habe ich benutzt. Leider wird nur das Tabellenblatt auf 100% gesetzt...
Microsoft Office 3. Oktober 2022

VBA Wenn nichts kopiert wurde, soll das Makro nichts machen

VBA Wenn nichts kopiert wurde, soll das Makro nichts machen: Hallo, um eine Folge von ID-Nr. in ein Formular einzufügen habe ich mir folgendes Makro erstellt und einer Schaltfläche zugewiesen: Sub AuftragsnummerEinfügen ' ' AuftragsnummerEinfügen Makro ' '...
Microsoft Office 25. März 2022

VBA makro um datei zu öffnen und dortiges makro auszuführen

VBA makro um datei zu öffnen und dortiges makro auszuführen: hallo,ich versuche mit folgendem makro eine datei aufzumachen der pfad dazu wird im sheet "files" aus spalte A ab zeile 2 eingelesen, die dateinamen aus spalte C. die erste datei wird auch...
Microsoft Office 6. Mai 2021

VBA Makro

VBA Makro: Hallo da wir ja alle auf absehbare Zeit, etwas mehr Zeit haben werden, da ist es mein Wille mich in VBA Makro zu erlernen! Meine ersten Schrittein Excel sind grandios gescheitert! Hat jemand...
Microsoft Office 23. März 2020

Steuerelemente mit Makro (ohne VBA) verknüpfen

Steuerelemente mit Makro (ohne VBA) verknüpfen: [IMG] Die beiden "Schaltflächen" - Kettenbagger & Radlader habe ich ausgeführt - die funktionieren - wie mache ich das Makro für Löschen, Suche, Alle - was muss ich in der Tabelle markieren um...
Microsoft Office 5. März 2018

VBA Makro

VBA Makro: Guten Tag, ich habe folgrndes Makro geschrieben. Sub Hinweispfeil() ActiveSheet.Shapes.AddShape(msoShapeRightArrowCallout, 39, 18.75, 120.75, 61.5).Select Selection.ShapeRange.ShapeStyle =...
Microsoft Office 5. Januar 2018
Probleme mit VBA-Makro: MailItem.BodyFormat ist immer 1 (olFormatPlain) und Umwandlung zu 2... solved
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.