Vergiss meine Frage. Sicher willst du sie auch speichern. Sonst brauchst du ja keinen Pfad. Dumme Frage.
Der Code funktioniert an sich. Habe ihn trotzdem noch etwas veraendert. Hab dir auch ein paar Kommentare reingeschrieben.
Was du aber auf alle Faelle machen musst: Die Referenz zur Outlook Objekt Bibliothek im VB Editor setzen. Ich denke, du wiesst wie. Wenn nicht:
1. Im VB Editor auf Werkzeuge - Referenzen
2. Die Microsoft Outlook 16.0 Object Library anhaken
Dann sollte es klappen. Hier der Code:
Sub PDF_und_Senden()
Dim Dateiname As String
Dim Outlook As Object, OutlookApp As Object, OutlookMailItem As Object
Dim myAttachments As Object
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") 'Tabellenname anpassen
'wenn du die codes in einem allgemeinen MOdul stehen hast, solltest du immer
'auf das gewuenschte Tabellenblatt verweisen, da sonst immer das aktive Tabellenblatt vom Code
'angesprochen wird
'um Schreibarbeit zu sparen, entweder With Anweisung oder das Tabellenblatt in eine Variable
'habe hier die Variable genommen
Dateiname = ws.Range("K3") & "\" & ws.Range("K2") & ".pdf" 'wenn beim Pfad kein abschliessendes \ angegeben ist, ansonsten wieder aendern
ws.Range("A1:G48").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dateiname, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMailItem = OutlookApp.CreateItem(0)
Set myAttachments = OutlookMailItem.Attachments
With OutlookMailItem
.To = Range("K16")
.Subject = Range("K17")
.Body = Range("K37")
myAttachments.Add Dateiname
.Display
End With
Set OutlookApp = Nothing
Set OutlookMailItem = Nothing
End Sub
Gruss Torsten
|