Anzeige
Archiv - Navigation
1900to1904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel befüllt Formularfeld Word - Mail

Excel befüllt Formularfeld Word - Mail
27.09.2022 19:55:09
Andreas
Hallo alle zusammen,
dank des Forums konnte ich ein Wordformular aus Excel heraus befüllen. Hierzu verwende ich folgenden Code:

Sub M_snb()
With CreateObject("Word.Application").Documents.Add("D:\Aufwand.dotx")
.FormFields("Nachname").Result = Textbox1.Text
.FormFields("Vorname").Result = Textbox1.Text
.FormFields("Datum").Result = Textbox1a.Text
End With
End Sub
Ich würde nun gerne, dass das Formular per Email verschickt wird. Hierzu wäre es toll, wenn das als PDF geschehen könnte. Wie stelle ich das automatisiert an. Derzeit öffnet er mir das Word-Dokument und befüllt es.
Ich würde gerne, dass das Formular befüllt und im Anschluss als PDF per Email verschickt wird. Kann mir hier jemand vielleicht noch behilflich sein.
LG Andreas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel befüllt Formularfeld Word - Mail
27.09.2022 20:00:56
JoWE
ups,
Nachname und Vorname sind identisch?
AW: Excel befüllt Formularfeld Word - Mail
27.09.2022 20:07:17
Andreas
DU hast recht, natürlich nicht... Textbox1,2,3
AW: Excel befüllt Formularfeld Word - Mail
27.09.2022 22:31:10
JoWE
Hallo,
so vllt.:

Private Sub fill_Doc_and_send_as_Mail()
Dim myDoc As String
'ja klar so kann man das auch machen siehe dazu: "Late Binding"
With CreateObject("Word.Application").Documents.Add("C:\Temp\test.dotx")
.FormFields("Nachname").Result = TextBox1.Text
.FormFields("Vorname").Result = TextBox2.Text
.FormFields("Datum").Result = Textbox13.Text
'Die WordDatei braucht zwecks Zwischenspeicherung einen DAteinamen
myDoc = ThisWorkbook.Path & "\" & TextBox1.Text & "_" & TextBox2.Text & ".pdf"
'Die Datei zwischenspeichern als PDF
.ExportAsFixedFormat OutputFileName:=myDoc, ExportFormat:=17, OpenAfterExport:=False
'jetzt die PDF-Datei schließen
.Close savechanges = True
.Quit
End With
'jetzt das Versenden anstoßen
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(olMailItem)
With objEmail
.to = "deinEmpfaenger@provider.com" ' Empfänger anpassen
.Subject = "Ihre neue Info finden Sie in der Anlage"
.Body = "Die Anlage enthält die folgenden Infos: Bla, bla bla..." 'auch anpassen
.Attachments.Add (myDoc)
.Display    'Der Mailentwurf wird angezeigt, evtl. will man ja noch etwas ändern"
'.send      'Versenden; hab' ich erst mal auskommentiert :-)
End With
'die zwischegespeicherte PDF-Datei kann gelöscht werden.
Kill myDoc
'Die Objektvariablen freigeben
Set objEmail = Nothing
Set objOutlook = Nothing
End Sub
Gruß
Jochen
Anzeige
AW: Excel befüllt Formularfeld Word - Mail
28.09.2022 11:23:17
JoWE
etwas verändert!
Und weil ich EarlyBinding benutze sind die
Verweise auf Word und Outlook zu setzen

Option Explicit
Private Sub fill_Doc_and_send_as_Mail()
Dim wdObj As Object
Dim wdDoc As Object
Set wdObj = CreateObject("Word.Application")
Dim myDoc As String
Set wdDoc = wdObj.Documents.Add("C:\Temp\test.dotx") 'anpassen
With wdDoc
.FormFields("Nachname").Result = TextBox1.Text
.FormFields("Vorname").Result = TextBox2.Text
.FormFields("Datum").Result = TextBox3.Text
'Die WordDatei braucht zwecks Zwischenspeicherung einen Dateinamen
myDoc = ThisWorkbook.Path & "\" & TextBox1.Text & "_" & TextBox2.Text & "_" & TextBox3.Text & ".pdf"
'Die Datei zwischenspeichern als PDF
.ExportAsFixedFormat OutputFileName:=myDoc, ExportFormat:=17, OpenAfterExport:=False  '17 = wdExportFormatPDF
'jetzt die PDF-Datei schließen
.Close SaveChanges:=0 'wdObj.wdDoNotSaveChanges
End With
'Word beenden
wdObj.Quit
'Die Word-Objektvariablen freigeben
Set wdDoc = Nothing
Set wdObj = Nothing
'jetzt das Versenden anstoßen
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(0)    ' 0 = olMailItem
With objEmail
.to = "deinEmpfaenger@provider.com" ' Empfänger anpassen
.Subject = "Ihre neue Info finden Sie in der Anlage"
.Body = "Die Anlage enthält die folgenden Infos: Bla, bla bla..." 'auch anpassen
.Attachments.Add (myDoc)
.Display    'Der Mailentwurf wird angezeigt, evtl. will man ja noch etwas ändern"
'.send      'Versenden; hab' ich erst mal auskommentiert :-)
End With
'die zwischegespeicherte PDF-Datei kann gelöscht werden.
Kill myDoc
'Die Outlook-Objektvariablen freigeben
Set objEmail = Nothing
Set objOutlook = Nothing
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige