Hallo zusammen,
Ich habe da ein Problem, bei dem ich alleine leider nicht weiterkomme und um Eure Hilfe bitte.
Vor einiger Zeit habe ich mir einen VBA Code bauen lassen.
Dieser hat durch betätigen eines Buttons in Excel einen Serienbrief in Word geöffnet, die Serienbrieffunktion gestartet, den Serienbrief dann komplett als PDF abgespeichert, die geänderte Excel Datenquelle sowie den Word Serienbrief gesichert und anschließend alle Dokumente automatisch geschlossen. Außerdem kann man In diesem Code sämtliche Speicherorte selbst bestimmen.
Nun hat sich leider meine Excel Datenquelle verändert und seitdem funktioniert nichts mehr. Ich habe alles Mögliche ausprobiert, leider ohne Erfolg.
Der Code sieht folgender Maßen aus:
Gerne kann ich Euch auch ein Beispiel der Excel Datenquelle und des Word Serienbriefes zur Verfügung stellen, allerdings wollen ja die Meisten, Dateien aus dem Internet nicht öffnen.
Vielleicht reicht ja der Code schon aus, um mir zu helfen.
Besten Dank für Eure Hilfe
Gruß
Stefan
Ich habe da ein Problem, bei dem ich alleine leider nicht weiterkomme und um Eure Hilfe bitte.
Vor einiger Zeit habe ich mir einen VBA Code bauen lassen.
Dieser hat durch betätigen eines Buttons in Excel einen Serienbrief in Word geöffnet, die Serienbrieffunktion gestartet, den Serienbrief dann komplett als PDF abgespeichert, die geänderte Excel Datenquelle sowie den Word Serienbrief gesichert und anschließend alle Dokumente automatisch geschlossen. Außerdem kann man In diesem Code sämtliche Speicherorte selbst bestimmen.
Nun hat sich leider meine Excel Datenquelle verändert und seitdem funktioniert nichts mehr. Ich habe alles Mögliche ausprobiert, leider ohne Erfolg.
Der Code sieht folgender Maßen aus:
Code:
Sub Quittungen_erstellen()
Dim wordfilepath As String
Dim resultpath As String
''''''''''' path of word and document
wordfilepath = "C:\Users\schub\Desktop\Quittung.docx"
resultpath = "C:\Users\schub\Desktop\result.docx"
pdffilepath = "C:\Users\schub\Desktop\Quittungen"
Dim wd As Object
Dim wdocSource As Object
Dim strWorkbookName As String
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wdocSource = wd.Documents.Open(wordfilepath)
strWorkbookName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
'' Debug.Print strWorkbookName
wdocSource.MailMerge.MainDocumentType = wdFormLetters
wdocSource.MailMerge.OpenDataSource _
Name:=strWorkbookName, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _
SQLStatement:="SELECT * FROM `Pflege_Namen_Quittung$`"
With wdocSource.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
'wd.Visible = True
wd.ActiveDocument.SaveAs resultpath
wd.ActiveDocument.Close SaveChanges:=False
'Print the document as a PDF
wdocSource.Close SaveChanges:=False
Set wdocSource = wd.Documents.Open(resultpath)
'''closing of word and excel
wdocSource.ExportAsFixedFormat pdffilepath & ".pdf", 17
wdocSource.Close
ThisWorkbook.Saved = True
Application.Quit
End Sub
Gerne kann ich Euch auch ein Beispiel der Excel Datenquelle und des Word Serienbriefes zur Verfügung stellen, allerdings wollen ja die Meisten, Dateien aus dem Internet nicht öffnen.
Vielleicht reicht ja der Code schon aus, um mir zu helfen.
Besten Dank für Eure Hilfe
Gruß
Stefan