Wordserienbrief aus Excel per VBA öffnen/ausführen

Bild

Betrifft: Wordserienbrief aus Excel per VBA öffnen/ausführen
von: Benny
Geschrieben am: 29.05.2015 18:56:13

Hallo,
ich möchte gerne aus Excel heraus einen Word-Serienbrief öffnen und als PDF-Drucken. Dazu habe ich als Test eine Datei Test.xlsx mit den Datensätzen für den Serienbrief und einen Serienbrief Serienbrief.docx erstellt. Anschließend habe ich über den Makrorekorder in Word die Auswahl der Exceldatei mit den Datensätzen und die Auswahl der Tabelle (Testblatt) aufgenommen und in mein Makro in Excel importiert. Nun sie mein Code wie folgt aus:

Public Sub Seriendruck()
  Dim wdApp As Object
  Dim dok As Object
  Dim tabelle As String
  'Word öffnen
  Set wdApp = CreateObject("Word.Application")
  wdApp.Visible = True
  'Serienbrief öffnen
  Set dok = wdApp.Documents.Open("D:\Serienbrief.doc")
  'Variable: Name des Tabellenblattes mit den Datensätzen
  tabelle = "'Testblatt$'"
  dok.MailMerge.MainDocumentType = 0
  'Beim folgenden wird der Laufzeitfehler 438 Objekt unterstützt
  'diese Eigenschaft oder Methode nicht gemeldet.
  dok.MailMerge.MailMerge.OpenDataSource Name:="D:\Test.xlsx", _
    ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    Format:=wdOpenFormatAuto, Connection:= _
    "Provider=Microsoft.ACE.OLEDB.14.0;User ID=Admin;Data Source=D:\Test.xlsx;Mode=Read; _
Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Pa" _
    , SQLStatement:="SELECT * FROM " & tabelle, SQLStatement1:="", SubType:= _
    wdMergeSubTypeAccess
  'So (direkte Eingabe des Tabellenblattes) geht es auch nicht!
  'dok.MailMerge.MailMerge.OpenDataSource Name:="D:\Test.xlsx", _
    ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    Format:=wdOpenFormatAuto, Connection:= _
    "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=D:\Test.xlsx;Mode=Read; _
Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Pa" _
    , SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:= _
    wdMergeSubTypeAccess
 'Drucken
 ActivePrinter = "PDF-XChange Printer 2012"
 With ActiveDocument.MailMerge
    .Destination = wdSendToPrinter
    .SuppressBlankLines = True
    With .DataSource
      .FirstRecord = 1
      .LastRecord = 10
    End With
    .Execute Pause:=False
  End With
wdApp.Quit
Set dok = Nothing
Set wdApp = Nothing
End Sub

Leider erscheint ein Laufzeitfehler bei der markierten Zeile.
Laufzeitfehler 438: "Objekt unterstützt diese Eigenschaft oder Methode nicht"
Ich habe in Excel die folgenden Verweise aktiviert: Microsoft Word 14.0 Object Libary und Microsoft Excel 14.0 Object
und bei Word die selben.
Ich hänge noch beide Testdokumente an und hoffe auf hilfreiche Antworten.
https://www.herber.de/bbs/user/97935.xlsx
https://www.herber.de/bbs/user/97936.doc
Vielen Dank schon einmal!

Bild

Betrifft: AW: Wordserienbrief aus Excel per VBA öffnen/ausführen
von: Benny
Geschrieben am: 29.05.2015 19:43:54
Hat sich erledigt! Ich hatte einfach blöde Tippfehler drin. Dieser Thread kann gelöscht werden!

Bild

Betrifft: Wordserienbrief aus Excel per VBA öffnen/ausführen
von: Hajo_Zi
Geschrieben am: 29.05.2015 19:48:59
warum dann offen?


Bild

Betrifft: AW: Wordserienbrief aus Excel per VBA öffnen/ausführen
von: Benny
Geschrieben am: 29.05.2015 19:49:53
sry. Nicht mein Tag heute!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makros ausblenden?"