Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Pdf an durch Makro erzeugte EMail anhängen
#1
Hallo zusammen,

hier noch ein kleines Problemchen. Ich habe unten folgendes Makro das mir eine EMail erstellt und öffnet mit von mir bestimmten in den Zellen I6 und I7 liegenden Emailadressen, dem Text aus der Zelle A6, und dem Betreff aus der Zelle I2.

Das funktioniert soweit auch ganz gut, wobei ich mir denke das ich bestimmte Codes gar nicht brauche.

Nun zum eigentlichen Problem, ich möchte das dieses Makro aus einem bestimmten Ordnerpfad eine Pdf als Anhang in die EMail lädt. Diese Pdf hat den gleichen Namen wie das Tabellenblatt selbst.

Wie stelle ich das an?

Vielen Dank schon mal.

Gruss Joerg



Code:
Sub E_Mail_senden()
Quelle = ActiveWorkbook.ActiveSheet.Name
Dim outl, Mail As Object
Set outl = CreateObject("Outlook.Application")
Set Mail = outl.CreateItem(0)
Mail.Subject = Sheets(Quelle).Range("I2")
Mail.body = Sheets(Quelle).Range("A6")
Mail.To = Sheets(Quelle).Range("I6") & "; " & Sheets(Quelle).Range("I7")
Mail.Display
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys ("")
Set Mail = Nothing
Set outl = Nothing
Set WshShell = Nothing
End Sub
Antworten Top
#2
Hallo!

Z.B.: Mail.Attachments.Add "C:\Test.pdf"

Gruß, René
[-] Folgende(r) 1 Nutzer sagt Danke an mumpel für diesen Beitrag:
  • JoergPorsch
Antworten Top
#3
Hallo Rene,

danke erstmal. hier mein vollständiger Code
Code:
Sub E_Mail_senden()
Dim Pfad As String, DateiName As String
   
 Pfad = "C:\Users\joerg.porsch\Documents\Quiz\Pdf\" 'Auf letzten Backslash achten!
 DateiName = Pfad & ActiveSheet.Name & ".pdf"
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=DateiName, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, _
  IgnorePrintAreas:=False, OpenAfterPublish:=True
Quelle = ActiveWorkbook.ActiveSheet.Name
Dim outl, Mail As Object
Set outl = CreateObject("Outlook.Application")
Set Mail = outl.CreateItem(0)
Mail.Subject = Sheets(Quelle).Range("I2")
Mail.body = Sheets(Quelle).Range("A6")
Mail.To = Sheets(Quelle).Range("I6") & "; " & Sheets(Quelle).Range("I7")
Mail.Attachments.Add "C:\Users\joerg.porsch\Documents\Quiz\Pdf\1.pdf"
Mail.Display
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
End Sub

Nun möchte ich aber das er mir mit
Code:
Mail.Attachments.Add "C:\Users\joerg.porsch\Documents\Quiz\Pdf\1.pdf"
keine bestimmte Pdf anhängt, sondern die Pdf anhängt, die den gleichen Namen wie das ActiveSheet hat. Da hänge ich gerade.




Danke schon einmal im voraus.

Gruss Joerg
Antworten Top
#4
Moin!

Pfad und Dateiname der erzeugten PDF steht doch in der Variable "DateiName"
Code:
Mail.Attachments.Add DateiName

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Wink 
Hallo Ralf,

das es so einfach ist hätte ich nicht erwartet .

Danke dafür, ihr seit spitze.
Antworten Top
#6
Hallo zusammen,

jetzt müsste ich nochmal stören, in o.g. Makro kopiere ich ja den Text mit folgendem Code

Code:
Mail.body = Sheets(Quelle).Range("A6")

in die E-Mail, gibt es auch eine Möglichkeit nicht nur den Text anzeigen zu lassen, sondern evtl. auch das ganze Format der Zelle A6?

Sprich auch den Rahmen etc. dazu. Also quasi eine Copy & Paste Funktion.

Ich habe es hiermit probiert, geht aber nicht, in Der E-Mail trägt er mir nur "-1" ein


Code:
Mail.body = Range("A6").Select
           Selection.Copy


Danke

Gruss Joerg
Antworten Top
#7
Hi!
Da ich kein Outlook habe, ist dies ungetestet.
Statt .Body musst Du .HTMLbody nehmen.
Schaue mal hier hinein:
http://www.herber.de/forum/archiv/728to7...erung.html

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Hallo Ralf,

danke erstmal, er übernimmt mir mit HTMLBody die Schriftart / farbe etc, aber leider keinen Rahmen.

Kurz zur Erklärung, die Zelle A6 besteht aus verschiedenen Zellen die miteinander verbunden sind, dort steht ein Text und es besteht ein Rahmen aussen rum.

Wenn ich ohne Makro diese verbundenen Zellen markiere und in eine EMail kopiere, erzeugt er mir in der Email einen schönen Rahmen mit dem Text. Genau in dem Format wie er in Excel vorgegeben ist. Das muss doch auch irgendwie mit Makro möglich sein?


Und dann habe ich noch ein ganz dumme Frage auf deren Lösung ich ebenfalls nicht komme und ihr mir wahrscheinlich den Kopf runter reisst da es pups einfach ist..

Ich habe folgenden Code um zwei Sätze hintereinander in die Mail zu kopieren


Code:
Mail.body = Sheets(Quelle).Range("A6") & "" & Sheets(Quelle).Range("I18")

Zwischen "" kann ich feste Texte einfügen, das ist klar, oder mit Range kann ich aus einer Zelle wieder Text vorgeben usw. Aber wie kann ich nach einem & den nächsten Eintrag ein oder zwei Zeilen weiter nach unten schieben?

Fragen über Fragen und das Leben ist ein Lernprozess, daher danke ich schon mal wieder im voraus.

Gruss Joerg
Antworten Top
#9
Hallo,

Zitat:Aber wie kann ich nach einem & den nächsten Eintrag ein oder zwei Zeilen weiter nach unten schieben?

"Text1" & chr(10) & chr(10) & "Text2"


habe jetzt einen Arzttermin, drum bin ich erst mal weg.de
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#10
(19.05.2016, 11:11)JoergPorsch schrieb: (...) Das muss doch auch irgendwie mit Makro möglich sein? (...)
Versuch mal => http://www.rholtz-office.de/outlook/emai...llen_teil1
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste