VBA Word zu PDF und dann als E-Mail senden?

2 Antworten

Option Explicit
 
Sub Excel_Sheet_via_Outlook_Senden()
 
Dim Emailadresse As String
Dim CCEmailadresse As String
Dim pfad As String
Dim name As String
Dim Betreff As String
Dim Nachricht As Object, OutApp As Object
Dim AWS As String

'###########################################
'### HIER KANNST DU DEINE DATEN ANPASSEN ###
'###########################################

'Hier Empfängermailadresse eintragen
Emailadresse = "Deine@empfängermail.de"
'Hier die CC Emailadresse eintragen (Wenn gewünscht)
CCEmailadresse = ""
'Pfad für die PDF selbst einstellen
pfad = "K:\"
'Dateiname der PDF selbst wählen oder 'ActiveWorkbook.Name' nutzen. Suchs dir aus ;)
name = "test"
'Hier den Betreff der Email eintragen
Betreff = "Betreff PDF - " & name & ".pdf"

'##########################################################
'### AB HIER NICHTS ÄNDERN WENN DU DICH NICHT AUSKENNST ###
'### AUSNAHME: DER TEXT DER NACHRICHT. DEN STELLST DU   ###
'###           ZWEIMAL EIN. FÜR HTML UND TEXTMAILS      ###
'##########################################################

If Emailadresse = "" Then GoTo abbruch
 
'Die Datei speichern als PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        pfad & name & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
   
'Email versenden
    Set OutApp = CreateObject("Outlook.Application")
    AWS = pfad & name & ".pdf"
    'InitializeOutlook = True
    Set Nachricht = OutApp.CreateItem(0)
    With Nachricht
        .To = Emailadresse
        .cc = CCEmailadresse
        .Subject = Betreff
        .Attachments.Add AWS
'#############################################################
'### HIER KANNST DU DEINEN MAILTEXT FÜR TEXTMAILS ANPASSEN ###
'#############################################################
        .body = "Dies ist die aktuelle " & name & ".pdf" & vbNewLine & vbNewLine & _
                "Stand: " & Date
'#############################################################
'### HIER KANNST DU DEINEN MAILTEXT FÜR HTMLMAILS ANPASSEN ###
'#############################################################
        .HTMLBody = "Dies ist die aktuelle " & "<b><u><font color=""#ff0000"">" & name & ".pdf </font></u></b><br /><br />" & _
                "Stand: " & Date
        .Send
    End With
    Set OutApp = Nothing
    Set Nachricht = Nothing

MsgBox "Die Email wurde erfolgreich an " & Emailadresse & " versendet!" & vbNewLine & vbNewLine & _
        "ACHTUNG!!! Outlook muss geöffnet sein um die Datei zu versenden."
       
Exit Sub

abbruch:
MsgBox "Der Vorgang wurde abgebrochen.", vbInformation, "Abbruch"
End Sub



helppppppp 
Beitragsersteller
 08.11.2017, 13:57

DANKE!!! Ich probiere es sofort aus :)

0
helppppppp 
Beitragsersteller
 08.11.2017, 14:02
@helppppppp

Kannst Du mir sagen, wie ich es von Excel auf Word umstellen kann?

0
verreisterNutzer  08.11.2017, 14:54
@helppppppp

Sorry nicht wirklich, da ich in Word nie mit VBA gearbeitet habe :D
Sowas mach ich immer in Excel.

VERMUTLICH musst du aber WorkSheet und Sheet umschreiben. Das wird bei Word vermutlich nicht so heißen :D

Hoffe das hilft dir trotzdem weiter, oder jemand anders kann dir das umschreiben

0
verreisterNutzer  08.11.2017, 11:33

Getestet uns als gut empfunden :)

Freue mich über Feedback.

Alles was du anpassen kannst ohne die Funktionen zu ändern, habe ich als solche auch declariert/beschrieben.

Grüße

1
verreisterNutzer  08.11.2017, 11:37
@verreisterNutzer

Merke gerade du machst das mit Word und nciht mit Excel (Dort habe ich es getestet)

Somit sind eventuell kleine Änderungen nötig.
Einfach mal testen.
Sowas habe ich noch nie mit Word gemacht :P

1

Hallo,

danke, das ist genau was ich suche, jedoch erhalte ich Fehler beim Ausführen des Makros. die folgenden Zeilen verursachen den Fehler:

'Die Datei speichern als PDF
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        pfad & name & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

xlTypePDF wird mit dem Fehler Variable nicht definiert angemeckert.

Hast du einen Tipp für mich?

Danke