Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

aus Excel neue Mail erstellen + anhängen

aus Excel neue Mail erstellen + anhängen
07.07.2022 14:48:35
Micha
Hallo in die Runde,
mit dem untenstehenden Schnipsel möchte ich, dass Excel
- durch klick auf einen bestimmten Button in einer Excel-Datei eine neue Mail in Outlook öffnet
- diese Datei (in der der Benutzer vorher Daten eingetragen hat) als Anhang zur e-Mail hinzufügt
- den Mail-Empfänger selbstständig aus Zelle F2 holt
- einen definierten Namen (aus Zelle H2) zusätzlich zum Datum in die Betreffzeile einfügt.
Alles funktioniert super, außer der Tatsache, dass an die Mail nur das leere Excel-Template angehängt wird. Die vorher vom Benutzer eingetragenen Daten fehlen :-(
Kurioserweise funktioniert es bei mir ohne Probleme. Versucht es eine meiner Testpersonen, kommt nur das "leere" Template bei mir an.
Ist da im Code etwas falsch oder woran könnte das liegen?
Vielen Dank im Voraus für hilfreiche Unterstützung.
Grüsse
Micha

Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Dim olOldbody As String
Set objOutlook = CreateObject(Class:="Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.GetInspector.Display
olOldbody = .htmlBody
.To = Range("F2").Text
.Subject = "Anfrage allgemein " & Date & " " & Range("H2").Value
.htmlBody = " Text" & _
olOldbody
.Attachments.Add ThisWorkbook.FullName
.Display
End With
Set objMail = Nothing
Set objOutlook = Nothing
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aus Excel neue Mail erstellen + anhängen
07.07.2022 14:53:57
Heli
Hi,
wenn die Datei vor dem Anhängen nicht gespeichert wird bekommst nur das leere Dokument. Also erst speichern, dann senden (oder eine Kopie temporär speichern, versenden und danach wieder löschen)
VG, Heli
AW: aus Excel neue Mail erstellen + anhängen
07.07.2022 14:57:58
UweD
Hallo
versuch mal, die Datei vor dem anhängen erst zu speichern.

'...
.htmlBody = " Text" & _
olOldbody
ThisWorkbook.Save
.Attachments.Add ThisWorkbook.FullName
.Display
LG UweD
AW: aus Excel neue Mail erstellen + anhängen
07.07.2022 17:20:49
Micha
Vielen Dank für die Hinweise Euch beiden.
Da ich es nicht gleich ausprobieren kann die kurze Frage, wo die Datei dann weggespeichert wird.
Temporär speichern und gleich wieder löschen hört sich im Prinzip auch gut an, dann liegt die Datei nicht beim User unnütz auf irgendeinem Laufwerk / Ordner oder ähnlichem herum. Wie wäre hier der Code abzuändern?
Viele Grüsse + nochmals Danke!
Micha
Anzeige
AW: aus Excel neue Mail erstellen + anhängen
08.07.2022 09:02:50
UweD
Hallo
Durch "ThisWorkbook.FullName" ist es ja die Datei die du bearbeitest.
Also wird sie genau dort gespeichert wo sie bisher auch schon lag.
LG UweD
AW: aus Excel neue Mail erstellen + anhängen
08.07.2022 16:00:06
Micha
Danke für die Antwort.
Die Datei wird es zum Download geben, d.h. es gibt i.d.R. noch keinen "vorherigen" Speicherort.
Im Test habe ich jetzt herausgefunden, dass Excel beim erstmaligen (!) öffnen und dem entsprechenden Sendeversuch die Datei einfach in das Verzeichnis bzw. Ordner speichert, welches zuletzt vom jeweiligen User für irgendeine andere Arbeit verwendet wurde. Das ist nicht so toll, da die Dateien dann ggf. völlig falsch dort "abgelegt" wären.
Wichtig ist in diesem Zusammenhang, dass die Datei inklusive Daten per Mail auf die Reise geht. Wichtig ist nicht, dass der User die Datei bei sich irgendwo abgespeichert hat.
Noch kurioser läuft es beim zweiten Öffnen der gleichen (frisch heruntergeladenen) Datei. Excel speichert beim Sendeversuch die Datei dann überhaupt nicht mehr irgendwo ab, sondern erstellt direkt die Mail, hängt die mit Daten gefüllte Datei an usw. Im Prinzip läuft es also beim zweiten Anlauf genau so, wie ich es am liebsten hätte - ohne Zwischenspeicherung irgendwo. Kurios!
Wie läuft das denn mit der weiter oben genannten temporären Speicherung + Löschung? Muss der Anwender da irgendwas spezielles machen / beachten oder läuft das alles "automatisch" ab.
Oder kann man Excel immer sagen, die Datei soll zwingend auf dem Desktop gespeichert werden?
Konkrete Laufwerksbuchstaben und Ordner werden nicht funktionieren, da die Anwender noch nicht einmal auf einheitlichen Netz-Laufwerken unterwegs sind.
Viele Grüsse + Danke!
Micha
Anzeige
AW: aus Excel neue Mail erstellen + anhängen
11.07.2022 23:42:48
Micha
Darf ich das Thema nochmal nach oben schieben und um Hilfe bitten?
Vielen Dank
Micha
AW: aus Excel neue Mail erstellen + anhängen
12.07.2022 08:19:38
Oberschlumpf
Hi Michael,
verwende diesen Code; er funktioniert - das weiß ich, weil getestet.

Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Dim olOldbody As String
Set objOutlook = CreateObject(Class:="Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.GetInspector.Display
olOldbody = .htmlBody
.To = Range("F2").Text
.Subject = "Anfrage allgemein " & Date & " " & Range("H2").Value
.htmlBody = " Text" & olOldbody
If Dir("C:\users\" & Environ("UserName") & "\XlTmp", vbDirectory) = "" Then
MkDir "C:\users\" & Environ("UserName") & "\XlTmp"
End If
ThisWorkbook.SaveCopyAs "C:\users\" & Environ("UserName") & "\XlTmp\Datei.xlsm"
.Attachments.Add "C:\users\" & Environ("UserName") & "\XlTmp\Datei.xlsm" 'ThisWorkbook.FullName
.Display
End With
Kill "C:\users\" & Environ("UserName") & "\XlTmp\Datei.xlsm"
Set objMail = Nothing
Set objOutlook = Nothing
End Sub
dieser Code...
- erstellt eine Mail wie von dir vorgegeben (Empf, Betreff, Mailtext)
- prüft, ob das Verzeichnis "C:\users\username\XlTmp" existiert (anstelle von username steht der Anmeldename, mit dem sich jeder Windowsnutzer bei Windows anmeldet)
...wenn nein, wird das Verzeichnis erstellt
- speichert im Verzeichnis eine Kopie der Datei, in der vom User Daten eingegeben wurden (Kopie deshalb, weil wir NULL wissen, um was genau für eine Datei es sich handelt, die du per Mail versenden willst - weil du NULL Infos angegeben hast)
- die gespeicherte Kopie wird - mit Inhalt - an Mail angehängt
- zeigt die Mail an - User muss nur noch auf Absenden klicken
- zuvor gespeicherte Kopie der Datei wird wieder gelöscht
Hilfts?
Ciao
Thorsten
Anzeige
Excel neue Mail erstellen+anhängen kein Outlook
08.07.2022 08:57:59
Wolfgang
Hallo,
zu diesem Thread habe ich eine andere Frage: Kann man dies auch auf ein anderes eMail-Porgramm umschreiben, wenn man Outlook nicht nutzt?
Worauf ist zu achten bzw. wie würde so ein Programmaufruf ausschauen?
es grüßt Wolfgang
AW: Excel neue Mail erstellen+anhängen kein Outlook
08.07.2022 09:11:03
Oberschlumpf
Hi Wolfgang,
was ist denn "ein anderes eMail-Porgramm"?
Thunderbird?
Dann guckst du mal hier: https://www.herber.de/forum/archiv/1292to1296/1294069_VBA__eMail_aus_Excel_in_Thunderbird.html
Hab ich gefunden in Google mit dem Suchtext "vba email thunderbird" ...nur für den Fall, dass du selbst mal googeln willst.
Hilfts?
Ciao
Thorsten
...ach so, fast vergessen...
Du kannst natürlich in "fremden Beiträgen" deine Zusatzfragen stellen, die mit dem eigentlichen Beitrag nix zu tun haben. Ich würde empfehlen: Erstell doch lieber eigene Beiträge für eigene Fragen - wie gesagt, nur n Tipp!
Anzeige

123 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige