Excel Daten zu Word in Textformularfelder

Moderator: ModerationP

Excel Daten zu Word in Textformularfelder

Beitragvon Elisabeth1985 » 06. Okt 2017, 10:05

Guten Morgen zusammen,

ich tüfftel gerade daran wie ich Daten aus einer Exceltabelle wie eine Art Serienbrief in Word bekomme.

Das Word Dokument hat verschieden Textformularfelder die eindeutige Namen haben.
In meiner ExcelTabelle habe ich mehrere Daten in vielen Spalten.

Bisher habe ich folgenden Code gefunden und etwas angepasst, aber er funktioniert nicht und bricht einfach immer bei Error ("Fin") ab.

Code: Alles auswählen
Public Sub Test()
     Dim strFileName As String
     Dim strDatum, strVertragspartner, strStraße_VP, strPLZ_VP, strOrt_VP As String
     Dim objWDApp As Object
     Dim objDoc As Object
     On Error GoTo Fin
     strFileName = "H:\...\Devisen.doc" 'habe den Pfad nur für hier gekürzt
     If Dir(strFileName) <> "" Then
         Application.ScreenUpdating = False
         With Sheet1
             strDatum = .Range("Q")
             strVertragspartner = .Range("F") & " " & .Range("G")
             strStraße_VP = .Range("H") & " " & .Range("I")
             strPLZ_VP = .Range("J")
             strOrt_VP = .Range("K")
            End With
         On Error Resume Next
         Set objWDApp = GetObject(, "Word.Application")
         If objWDApp Is Nothing Then Set objWDApp = CreateObject("Word.Application")
         On Error GoTo 0
         With objWDApp
             .Visible = True 'Or True, if Word is to be indicated
             Set objDoc = .Documents.Open(strFileName)
             
            .ActiveDocument.Bookmarks("Vertragsdatum").Range = strDatum
            .ActiveDocument.Bookmarks("Vertragspartner").Range = strVertragspartner
            .ActiveDocument.Bookmarks("Straße_VP").Range = strStraße_VP
            .ActiveDocument.Bookmarks("PLZ_VP").Range = strPLZ_VP
            .ActiveDocument.Bookmarks("Ort_VP").Range = strOrt_VP
            .ActiveDocument.Bookmarks("Vertragspartner99").Range = strVertragspartner
            .ActiveDocument.Bookmarks("Vertragsdatum1").Range = strDatum
            .ActiveDocument.Bookmarks("Vertragspartner1").Range = strVertragspartner         
         End With
         MsgBox "Finished!"
     Else
         MsgBox "No file!"
     End If
Fin:
     Application.ScreenUpdating = True
     Set objWDApp = Nothing
 End Sub


Frage: Wie bekomme ich meine verschiedenen Zeilen in das Dokument, so dass es am Ende wie ein fertiger Serienbrief ausschaut (also wenn ich 5 Vertragspartner habe, dann sollen die Seiten in Word jeweils 5x ausgefüllt da sein)?

Danke schon mal!
Grüße Elisabeth
Elisabeth1985
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Jun 2017, 10:38

Re: Excel Daten zu Word in Textformularfelder

Beitragvon Fen » 06. Okt 2017, 10:29

Hallo,

zuerst eine Verständnisfrage:

Warum geht die Standard-Seerienbrieffunktion von Word, mit der xl-Tabelle als Datenquelle nicht?

Erst wenn dort alle Möglichkeiten versucht wurden, macht es sinn über ein selbstgestriktes VBA-Programm nachzudenken.

mfg
Fen
 

Re: Excel Daten zu Word in Textformularfelder

Beitragvon snb » 06. Okt 2017, 10:38

Und dann wäre die Verwendung von Dokumentvariabelen zu bevorzügen.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 4996
Registriert: 25. Sep 2014, 16:37

Re: Excel Daten zu Word in Textformularfelder

Beitragvon Elisabeth1985 » 06. Okt 2017, 10:54

Ich wollte erst die Serienbrieffunktion in Word benutzen, ABER
1. sind es an die 30 Spalten die ausgelesen werden müssen und wenn ich ein Druckfeld einfügen möchte, zeigt er mir nicht alle an im DropDown
2. Die Überschriftszeilen befinden sich in Zeile 2 und Word benutzt Zeile 1 als Überschriftszeile.
3. Ist das Word Dokument schon länger belegt mit Textformularfeldern und nicht mit "Feldern" für einen Seriendruck.

@snb: Dokumentvariablen?
Elisabeth1985
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17
Registriert: 08. Jun 2017, 10:38


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Hajo_Zi und 14 Gäste