Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gesendete Email aus Excel automatisch speichern

Gesendete Email aus Excel automatisch speichern
22.07.2015 07:38:34
Matthias
Hallo,
ich kann per Excel eine Email versenden.
Ist es auch möglich die versendete Email danach in einem bestimmten Verzeichnis automatisch zu speichern?
Bezeichnung der gespeichertn Email
JJMMTT_Betreff
Kann mir hierzu wer helfen oder braucht ihr hierzu meine Excel-Datei?

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 08:26:40
JoWE
Hallo Matthias,
schau Dir mal diesen Beitrag an:
http://www.office-loesung.de/ftopic382397_0_0_asc.php#1573660
Ich stelle Deinen Beitrag trotzdem noch offen; evtl. haben andere bessere Ideen.
Gruß
Jochen

Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 11:21:36
Matthias
Hallo
ich habe nun versucht den Code anzuwenden.
Nur habe ich das Problem, dass er mir immer sagt, dass das objekt nicht gefunden wird.
Warum?
Dim olApp As Object, objMail As Object
Set olApp = GetObject(, "OutLook.Application")
Set objMail = Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
objMail.SaveAs Environ("USERPROFILE") & "\Desktop\" & "dsfdf" & ".msg", 3

Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 13:29:20
JoWE
Matthias,
hier: Set objMail = Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
ist einmal "Set objMail = " zuviel!
Und wo genau bleibt das Makro hängen?
Und Frage: Verweise gesetzt?
Gruß
Jochen

AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 14:01:28
Matthias
Hallo,
Danke hier lag ein Kopierfehler vor.
Dim olApp As Object, objMail As Object
Set olApp = GetObject(, "OutLook.Application")
Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
objMail.SaveAs Environ("USERPROFILE") & "\Desktop\" & "dsfdf" & ".msg"
Wie schaffe ich es, dass die Emails so abgespeichert werden.
JJMMTT_Betreff
Kann du mir hierzu weiterhelfen?
Die Dateien werden mittlerweile abgespeichert.

Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 14:42:12
JoWE
Hallo nochmal,
wenn 'JJMMTT' das aktuelle Datum des Mailausgangs wäre
und 'Betreff' ein Wert aus einer Zelle, wie zum Beispiel aus Sheets("Tabelle1").Range("B4"),
dann vielleicht so:
objMail.saveAs Environ("USERPROFILE") & "\Desktop\" & Format(date,"yymmdd") & "_" & Sheets("Tabelle1").Range("B4") & ".msg"
Gruß
Jochen

Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 15:17:58
Matthias
Hallo danke für den Code.
Dim olApp As Object, objMail As Object
Set olApp = GetObject(, "OutLook.Application")
Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
'objMail.SaveAs Environ("USERPROFILE") & "\Desktop\" & wksPrint.Range("A6").Value & ".msg", 3
objMail.SaveAs FolderPDF & Format(Date, "yymmdd") & "_" & "RE" & "_" & wksPrint.Range("A5").Text & "_" & wksPrint.Range("A6").Text & "_" & wksPrint.Range("U1").Text & ".msg", 3
Mit diesen Code geht es zwar. Aber er bringt mir hier immer den Fehler 13. Typen unvertäglich.
Was hat er hier für ein Problem.
oder kann man die Fehlermeldung einfach unterdrücken?

Anzeige
AW: Gesendete Email aus Excel automatisch speichern
22.07.2015 15:29:36
JoWE
hmm,
fehlt vielleicht der Backslash "\" hinter FolderPDF ?
objMail.SaveAs FolderPDF & "\" &...
Ist in den Werten aus 'A5', 'A6', 'U1' evtl. evtl. ein für Dateinamen unzulässige Zeichen enthalten?
Gruß
Jochen
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Gesendete E-Mails aus Excel automatisch speichern


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsm)" und wähle "Einfügen" > "Modul".

  3. Code einfügen: Füge den folgenden Code ein, um eine E-Mail zu senden und sie gleichzeitig zu speichern:

    Sub SendMailAndSave()
        Dim olApp As Object, objMail As Object
        Set olApp = GetObject(, "Outlook.Application")
        Set objMail = olApp.Session.GetDefaultFolder(5).Items.GetLast
    
        ' Hier wird das aktuelle Datum und der Betreff gesetzt
        Dim fileName As String
        fileName = Environ("USERPROFILE") & "\Desktop\" & _
                    Format(Date, "yymmdd") & "_" & _
                    Sheets("Tabelle1").Range("B4").Value & ".msg"
    
        ' E-Mail speichern
        objMail.SaveAs fileName, 3
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros > SendMailAndSave aus.


Häufige Fehler und Lösungen

  • Fehler: Objekt nicht gefunden: Dieser Fehler tritt häufig auf, wenn der Code nicht korrekt ist. Achte darauf, dass du Set objMail = nur einmal verwendest und den richtigen Outlook-Ordner (5 für "Gesendete Elemente") wählst.

  • Fehler 13: Typen unverträglich: Überprüfe, ob in den Zellen A5, A6 oder U1 unzulässige Zeichen für Dateinamen enthalten sind. Ein Backslash (\) hinter dem FolderPDF könnte ebenfalls fehlen.


Alternative Methoden

Eine alternative Methode, um E-Mails in Outlook automatisch zu speichern, ist die Verwendung von Outlook-Regeln. Du kannst Regeln einrichten, die eingehende oder gesendete E-Mails in bestimmte Ordner speichern.

Zusätzlich kannst du VBA-Skripte verwenden, die auf bestimmte Ereignisse in Excel reagieren, anstatt manuell zu starten.


Praktische Beispiele

Hier ist ein Beispiel, wie du E-Mails mit einem benutzerdefinierten Dateinamen speichern kannst:

objMail.SaveAs FolderPDF & Format(Date, "yymmdd") & "_" & _
                "Betreff" & "_" & _
                wksPrint.Range("A5").Value & ".msg", 3

Dies speichert die E-Mail im Desktop-Ordner mit dem Format JJMMTT_Betreff.msg.


Tipps für Profis

  • Verweise setzen: Stelle sicher, dass die benötigten Verweise in den VBA-Optionen gesetzt sind, um die Outlook-Objektbibliothek zu verwenden.

  • Fehlermeldungen unterdrücken: Du kannst die Anweisung On Error Resume Next verwenden, um Fehlermeldungen zu ignorieren. Dies kann jedoch zu unvorhersehbaren Ergebnissen führen, also sei vorsichtig damit.


FAQ: Häufige Fragen

1. Wie kann ich die gespeicherten E-Mails in einem anderen Verzeichnis speichern?
Du kannst den Speicherort ändern, indem du den Pfad in Environ("USERPROFILE") & "\Desktop\" anpasst.

2. Welche Excel-Version benötige ich für diese Methode?
Der Code sollte in Excel 2010 und späteren Versionen funktionieren, solange Outlook installiert und konfiguriert ist.

3. Wie kann ich den Betreff der E-Mail anpassen?
Du kannst den Betreff der E-Mail ändern, indem du den Wert in der entsprechenden Zelle anpasst, z.B. Sheets("Tabelle1").Range("B4").Value.

4. Kann ich das Speichern von E-Mails automatisieren?
Ja, du kannst den Code so anpassen, dass er automatisch beim Senden einer E-Mail ausgeführt wird, indem du das Makro an ein Ereignis bindest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige