VBA Word zu PDF und dann als E-Mail senden?
Hallo,
ich weiß, in verschiedenen Foren gibt es schon Hilfestellungen zu VBA, PDF und Co. - jedoch war nach tagelanger Suche nicht das RICHTIGE dabei, weshalb ich hoffe, dass man mir hier weiterhelfen kann.
Ich möchte, dass das ausgefüllte Formular (Formularfeld wurde per VBA erstellt), welches in Form eines Word-Dokuments vorhanden ist, durch einen Klick umgewandelt wird als PDF und dann als E-Mail (via Outlook) verschickt werden kann.
Ich hoffe, es kann mir jemand weiterhelfen.
Grüße
helppppppppp
2 Antworten
![](https://images.gutefrage.net/media/default/user/8_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Kannst Du mir sagen, wie ich es von Excel auf Word umstellen kann?
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
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
DANKE!!! Ich probiere es sofort aus :)