Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datenquelle f. Serienbrief per VBA festlegen

Forumthread: Datenquelle f. Serienbrief per VBA festlegen

Datenquelle f. Serienbrief per VBA festlegen
15.09.2003 13:31:05
Christian Allinger
Hallo,

ich rufe die Seriendruckfunktion von Word per VBA von Excel aus auf:

Set WordApp = CreateObject("Word.Application")
WordApp.Documents.Add Template:="Vorlage.dot", NewTemplate:=False, DocumentType:=0
WordApp.Visible = True

With WordApp.ActiveDocument.MailMerge
.Destination = 0
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1
.LastRecord = 3
End With
.Execute Pause:=True
End With
WordApp.ActiveDocument.MailMerge.MainDocumentType = -1
Set WordApp = Nothing

Dies funktioniert auch einwandfrei, allerdings nur, wenn die Datenquelle in der Datei "Vorlage.DOT" fest definiert wurde.

Wenn ich versuche mittels folgendem Code die Datenquelle festzulegen erhalte ich die Meldung: "Laufzeitfehler '4198' Befehl misslungen Woran kann das liegen ?

WordApp.ActiveDocument.MailMerge.OpenDataSource name:= "Steuer.xls", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=Steuer.xls;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:R", _
SQLStatement:="SELECT * FROM `'MM Ziel$'`", SQLStatement1:="", _
SubType :=wdMergeSubTypeAccess

Gruß,

Christian
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenquelle f. Serienbrief per VBA festlegen
15.09.2003 13:33:38
Willie
Hallo Christian
Warum öffnest du nicht einfach aus Excel das Haupdokument?
Dann geht deine Datenquelle autom. auf!

Gruß

Willie
Anzeige
;
Anzeige

Infobox / Tutorial

Datenquelle für Serienbrief per VBA festlegen


Schritt-für-Schritt-Anleitung

Um die Datenquelle für einen Serienbrief über VBA in Excel festzulegen, folge diesen Schritten:

  1. Öffne Excel und erstelle ein neues Modul:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Klicke im Menü auf Einfügen und wähle Modul.
  2. Füge den folgenden Code ein:

    Sub SerienbriefErstellen()
       Dim WordApp As Object
       Set WordApp = CreateObject("Word.Application")
       WordApp.Documents.Add Template:="Vorlage.dot", NewTemplate:=False, DocumentType:=0
       WordApp.Visible = True
    
       With WordApp.ActiveDocument.MailMerge
           .Destination = 0
           .MailAsAttachment = False
           .SuppressBlankLines = True
           .DataSource.OpenDataSource Name:="Steuer.xls", _
               ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
               AddToRecentFiles:=False, PasswordDocument:="", _
               WritePasswordDocument:="", Revert:=False, _
               SQLStatement:="SELECT * FROM `'MM Ziel$'`"
           .Execute Pause:=True
       End With
    
       Set WordApp = Nothing
    End Sub
  3. Führe das Skript aus, um den Serienbrief zu erstellen.


Häufige Fehler und Lösungen

  • Laufzeitfehler 4198: Dieser Fehler tritt häufig auf, wenn die OpenDataSource Methode nicht korrekt verwendet wird. Überprüfe, ob der Pfad zur Datenquelle (z.B. Steuer.xls) korrekt ist und dass die Excel-Datei geöffnet oder erreichbar ist.

  • Datenquelle nicht aktualisiert: Stelle sicher, dass die Datenquelle in der richtigen Excel-Version gespeichert ist und die Tabelle, die du abfragen möchtest, existiert.


Alternative Methoden

Eine alternative Methode zur Festlegung der Serienbrief Datenquelle besteht darin, direkt in Word zu arbeiten:

  1. Öffne Word und erstelle ein neues Dokument.
  2. Gehe zu Sendungen und wähle Seriendruck starten.
  3. Wähle Vorlage verwenden und öffne deine Excel-Datei als Datenquelle.
  4. Folge den Anweisungen im Assistenten, um deine serienbrief quelle ändern zu können.

Praktische Beispiele

Ein einfaches Beispiel für einen Word-Serienbrief mit Excel als Datenquelle:

Sub SerienbriefBeispiel()
    Dim WordApp As Object
    Set WordApp = CreateObject("Word.Application")
    WordApp.Documents.Open "C:\Pfad\zu\deinem\Dokument.docx"

    With WordApp.ActiveDocument.MailMerge
        .OpenDataSource Name:="C:\Pfad\zu\deiner\Datenquelle.xlsx", _
            SQLStatement:="SELECT * FROM [Tabelle1$]"
        .Execute Pause:=False
    End With

    Set WordApp = Nothing
End Sub

Hierbei wird die word serienbrief datenquelle direkt über den Pfad zur Excel-Datei festgelegt.


Tipps für Profis

  • Verwende Variablen für Dateipfade: Das macht deinen Code flexibler und leichter zu warten.

  • Fehlerbehandlung implementieren: Nutze On Error Resume Next, um Laufzeitfehler abzufangen und entsprechende Meldungen anzuzeigen.

  • Datenquelle regelmäßig aktualisieren: Wenn du häufig deine word-serienbrief excel datenquelle aktualisieren musst, überlege, eine Funktion zur automatischen Aktualisierung zu erstellen.


FAQ: Häufige Fragen

1. Wie kann ich die Datenquelle für einen Serienbrief in Word ändern?
Du kannst die word serienbrief quelle ändern, indem du die OpenDataSource Methode in deinem VBA-Code anpasst und sicherstellst, dass die Datei erreichbar ist.

2. Was kann ich tun, wenn ich den Laufzeitfehler 4198 bekomme?
Überprüfe die Syntax deiner OpenDataSource Methode und stelle sicher, dass die Datenquelle existiert und korrekt verlinkt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige