Hallo, ich habe ein Problem, an dem ich jetzt schon seit 2 Tagen sitze:
Ich möchte einen Word-Serienbrief über VBA programmieren. Die Daten kommen aus einer Excel-Tabelle und müssen zum Teil noch modifiziert werden. Einige Daten möchte ich in dem Word-Dokument in Feldfunktionen weiterverwenden, und da fängt mein Problem an.
Meine Idee war, dass ich die Übergabe der Daten in VBA mit der Methode ActiveDokument.Variables.Value einleite und diese dann mit den docvariablen im Dokument übernehme.
Das ganze funktioniet leider so wie ich es geschrieben habe nicht, die Variavle wird zwar gefüllt, aber nicht in das Dokument übergeben.
Der Befehl ActiveDocument.MailMerge.execute macht m. M. die übertragung zunichte.
Hier der Code:
Public Sub Test4()
Dim LetzterRec As Long
Dim var1, var2 As Integer
Dim besch_finanzamt As String
ActiveDocument.MailMerge.OpenDataSource
Name:="C:\Users\tom\Desktop\VBA\Stb_u_Stud_ausweis.xls", _ SQLStatement:="SELECT * FROM `WordBriefeDrucken__Arbeitstabel$`"
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdFirstRecord
Do
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
var1 = .DataFields("VersandFinanzbeschBetrag").Value
var2 = .DataFields("VersandFinanzbesch").Value
End With
If var1 <> 0 And var2 = -1 Then
ActiveDocument.Variables("besch_finanzamt").Value = "ja"
Else
ActiveDocument.Variables("besch_finanzamt").Value = "nein"
End If
.Execute
ActiveDocument.Fields.Update
If .DataSource.ActiveRecord < LetzterRec Then
.DataSource.ActiveRecord = wdNextRecord
Else
Exit Do
End If
Loop
End With
End Sub
Es wäre supernett, wenn mir jemand weiterhelfen könnte.
Vielen Danke schon mal!
Thomas