Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Laufzeitfehler 4605 keinSeriendruck-Hauptdokument
#1
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
Antworten Top
#2
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.
Antworten Top
#3
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) ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#4
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.
Antworten Top
#5
habs in der Windowsreg rauscodiert.

Idea
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste