Clever-Excel-Forum

Normale Version: Laufzeitfehler 4605 keinSeriendruck-Hauptdokument
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen ich bekomme die Krise,

ich hab eine Exceltabelle gebastelt, welche aus einer Datenbank Daten selektiert, filtert und dann die Kundendaten in excel schreibt. 

Diese sollen dann für einen Serienbrief in Word genutzt werden. Händisch klappt es. 

Wenn ich versuche per VBA in Excel Word aufzurufen oder VBA in Word zu nutzen kommt die Fehlermeldung:  

Laufzeitfehler'4605':
Diese Methode oder Eigenschaft ist nicht verfügbar, weil das Dokument kein Seriendruck-Hauptdokument ist. 

Ich weiß was ich hier machen soll um den Fehler zu beheben. 

Hier der ganze Code von VBA-Word:

private Sub Document_Open()

  ErstelleUndExportierePDF
End Sub



Sub ErstelleUndExportierePDF()
    ' Seriendruck durchführen
    ActiveDocument.MailMerge.Execute

    ' Datum ermitteln
    Dim heute As String
    heute = Format(Date, "dd.MM.yyyy")

    ' Pfad für Archiv-Ordner erstellen
    Dim archivPath As String
    archivPath = ThisDocument.Path & "\Archiv\"

    ' Prüfen, ob der Archiv-Ordner existiert, andernfalls erstellen
    On Error Resume Next
    MkDir archivPath
    On Error GoTo 0

    ' PDF erstellen
    Dim pdfName As String
    pdfName = archivPath & "HU anschreiben mit Datum " & heute & ".pdf"

    With ActiveDocument
        .ExportAsFixedFormat OutputFileName:=pdfName, _
            ExportFormat:=wdExportFormatPDF, _
            OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
            wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
            IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
            wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
            True, UseISO19005_1:=False
    End With

    ' Seriendruckfelder zurücksetzen
    ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument

    ' Word-Dokument schließen
    ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
   
    On Error Resume Next ' Fehler abfangen, falls Word nicht geöffnet ist
    Application.Quit ' Word schließen
    On Error GoTo 0 ' Fehlerbehandlung wieder einschalten
End Sub
Hallo h...,

vermutlich erscheint der Fehler in dieser Zeile:

ActiveDocument.MailMerge.Execute

Entweder war das Dokument noch nie mit einer Datenquelle verknüpft oder ist es wegen dieser Zeile weiter unten

ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument

spätestens nach dem zweiten Makrodurchlauf nicht mehr.

Abhilfe: Diese Zeile löschen und das Dokument vorher manuell mit der Datenquelle verknüpfen und so abspeichern. Oder das Dokument per VBA als erstes mit der Datenquelle verbinden: ActiveDocument.MailMerge OpenDataSource..... Das kannst du dir auch aufzeichnen lassen.
Hallöchen,

ich vermute, dass Dein Dokument, wie die Fehlermeldung aussagt, noch kein oder nicht mehr Seriendruckdokument ist Sad

(Nicht zuletzt auch wg.
' Seriendruckfelder zurücksetzen
ActiveDocument.MailMerge.MainDocumentType = wdNotAMergeDocument
)

Wenn Du das Dokument ohne Speichern schließt, musst Du die Felder auch nicht zurück setzen.
Probier das Makro einfach mal mit einem gespeicherten Seriendruckdokument aus (ohne die zitierte Zeile) ...
So erstmal danke, 

war ja irgendwie offensichtlich  19 aber es funktioniert. 

Hab jetzt nur noch das Problem, dass wenn das Worddokument geöffnet wird, kommt die Meldung: Beim Öffnen des Dokuments wird der folgende SQL-Befehl ausgeführt. Select * FROM 'Tabelle1§'. Daten aus der Datenbank werden in das Dokument eingefügt. Möchten Sie den Vorgang fortsetzen?  JA/NEIN.
habs in der Windowsreg rauscodiert.

Idea