Es ist ein weiteres Problem aufgetreten.
Ich würde gerne per Makro das aktive Arbeitsblatt in ein PDF Dokument speichern und direkt als Mail versenden.
Problematik dabei, ich wäre gerne unabhängig von Outlook...
Ich hab da schon mal ein paar Zeilen, die für meinen bedarf angepasst werden müssten, was ich aber nicht hinbekomme.
Anzupassen wäre:
- Das Arbeitsblatt soll nicht als .xlsm gespeichert werden, sondern als .pdf
- Auch nicht nur temporär, sondern an einem speziellen Pfad
- Mailprogramm unabhängig von Outlook (Standardmailprogramm)
- Empfänger-Mailadresse sollte automatisch aus einer Zelle des Arbeitsblattes ausgelesen werden
Das ist der Code den ich anpassen wollen würde:
Sub Rechnung_senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Temp\" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
'** Body-Text festlegen. Irgendwas funktioniert nicht ganz :/
strBodyText = _
"Mit freundlichen Grüßen" & Chr(13) & Chr(13) & _
"Name" & Chr(13) & _
"Firmenname, Adresse" & Chr(13) & _
'** Mail erzeugen
With Mail
'.To = ""
'.CC = ""
.Subject = "" 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = strBodyText 'Bodytext / Signatur
End With
'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close
'** Erzeugte Datei wieder löschen
Kill (strDatei)
'** E-Mail anzeigen
Mail.Display
End Sub
Villeicht mit irgendwas hiervon anreichern? Ich weiss aber nicht wie und wo...
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\JohnFox\AppData\Local\Temp\0. Vorlage.pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Application.Dialogs(xlDialogSendMail).Show
Vielen Dank für eure Hilfe!