Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen

Emailversand aus Excel mit Speicherung

Betrifft: Emailversand aus Excel mit Speicherung von: Dalibor
Geschrieben am: 17.10.2014 23:37:06

Hallo zusammen,

ich habe folgendes vor.

Erstellen eines Emailgenerators wo ich mittels verschiedene Eingabefeldern (Userform) Werte in der Email wiedergebe.

Den Emailgenerator habe ich soweit, funktioniert auch bestens!
Nun möchte ich jedoch noch eine Schaltfläche mit Email - speichern und die gerade versendete Email aus dem Ordner gesendete Objekte herraussuchen (String für den Betreff habe ich, nach diesem würde ich gerne suchen) und in einem vorgegeben Verzeichnis abspeichern (*.msg)

Könnt Ihr mir einen Tipp geben wie ich das aus Excel schaffe?
Oder muss ich hier direkt im Outlook ein Makro schreiben?

Es handelt sich um Excel 2007 und Outlook 2007.

Danke schon mal!

  

Betrifft: AW: Emailversand aus Excel mit Speicherung von: mumpel
Geschrieben am: 18.10.2014 07:19:48

Hallo!

Bei "olFolder" noch den Namen des Kontos anpassen. Bei "olItems.SaveAs" den Pfad anpassen.

Option Explicit

Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Public Sub CreateOLAppMailAndSave()

Dim olApp          As Object
Dim olName         As Object
Dim olFolder       As Object
Dim olItems        As Object

Dim olOldBody      As String
Dim olMailSubject  As String

olMailSubject = "Ihre angeforderten Unterlagen" ' Betreff erstellen 

   Set olApp = CreateObject("Outlook.Application")
   Set olName = olApp.GetNamespace("MAPI")
   Set olFolder = olName.Session.Folders("RMH Software").Folders("Gesendete Elemente")

   With olApp
        With .CreateItem(0)
             .GetInspector.Display
             olOldBody = .HTMLBody
             .To = "rmh.installationen@t-online.de"
             .Subject = olMailSubject
             .HTMLBody = "Hallo!<br><br>Anbei gewünschte Unterlagen." & _
                         "<br><br>Gruß, René<br><br>" & olOldBody
             .Send
        End With
        
        Sleep 1000 ' Warten bis gesendete Email in "Gesendete Objekte" erscheint 


        For Each olItems In olFolder.Items
            If olItems.Subject = olMailSubject Then
               olItems.SaveAs Environ("USERPROFILE") & "\Desktop\" & olItems.Subject & ".msg", 3
               Exit For
            End If
        Next olItems
        
   End With
End Sub




VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14
Gruß, René


  

Betrifft: Nachtrag von: mumpel
Geschrieben am: 18.10.2014 07:22:10

Nachtrag:
Wichtig ist dass vor dem Speichern alle Sonderzeichen (?,#,: etc.) aus dem Betreff entfertn werden müssen (Replace), da diese Zeichen in Dateinamen unzulässig sind.


  

Betrifft: AW: Nachtrag von: Dalibor
Geschrieben am: 21.10.2014 03:51:35

Danke für die schnelle Antwort!

Werde es nun anpassen und Probieren, melde mich nochmals.


  

Betrifft: AW: Nachtrag von: Dalibor
Geschrieben am: 24.10.2014 02:18:21

Hallo nochmal,

klappt soweit!

Jetzt würde ich aber gerne die Speicherung der Email mit einem Commandbutton ausführen "CmB2Emailspeichern", jedoch ist dieser natürlich nicht in der gleichen Sub.

Und wenn ich versuche das zu machen bringt er mir natürlich die Meldung das in olItems nix drin ist.
Wie bekomme ich das in der anderen Sub hin?

Danke und ein schönes WE!


 

Beiträge aus den Excel-Beispielen zum Thema "Emailversand aus Excel mit Speicherung"