ich erstelle gerade in Excel eine Datei zur Abrechnung von unseren Produkten.
Ich möchte gerne auf Knopfdruck den dazugehörigen Serienbrief öffnen und alle Dateien einzeln abspeichern.
Mit etwas Hilfe aus diesem Forum funktioniert das Öffenen und Erzeugen der einzelnen Dateien schon.
Allerdings werden die Dateien nicht gespeichert und es erscheint der Laufzeitfehler 4248 "Dieser Befehl ist nicht verfügbar, weil kein Dokument Datei geöffnet ist".
Ich kann es mir nicht erklären, da die Datei exsistiert und geöffnet ist.
Kennt das Problem jemand oder erkennt den Fehler im Code?
Anbei der Code.
Sub Serienbrief_Test()
Dim Pfad_SB As String
Dim Pfad_Quelle As String
Dim Pfad_SB_speichern As String
Dim Word As Object
Set Word = CreateObject("Word.Application")
Dim SB_Doc As Object
Dim Dateiname As String
Application.ScreenUpdating = False
Application.Visible = False
Pfad_SB = "C:\Desktop\Abrechnung\Rechnungsformular.Docx"
Pfad_Quelle = ThisWorkbook.FullName
Pfad_SB_speichern = "C:\Desktop\Abrechnung\Ablage\"
'Serienbrief öffnen
With Word
.Visible = True
Set SB_Doc = Word.Documents.Open("C:\Desktop\Abrechnung\Rechnungsformular. _
Docx")
'Einzeldokumente speichern
With SB_Doc.MailMerge
'Tabelle auswählen aus denen die Daten gezogen werden sollen
.OpenDataSource Name:=Pfad_Quelle, LinkToSource:=True, Format:=0, SQLStatement:="SELECT * _
_
FROM `Serienbrief$`"
.Destination = 0
.SuppressBlankLines = True
.DataSource.ActiveRecord = wdFirstRecord
'Einzeldokumente speichern
Do
If .DataSource.ActiveRecord > 0 Then
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
Dateiname = Pfad_SB_speichern & "Seriendruck" & .ActiveRecord & ".doc"
End With
.Execute Pause:=False
'Ab hier gehts nicht mehr
ActiveDocument.SaveAs Filename:=Dateiname
ActiveDocument.Close False
End If
If .DataSource.ActiveRecord
Für eure Hilfe vielen Dank schon einmal.