Informationen und Beispiele zum Thema Userform | |
---|---|
![]() |
Userform-Seite mit Beispielarbeitsmappe aufrufen |
![]() |
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 SubGruß, René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
![]() ![]() |
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!
![]() |