Makro als Modul
05.04.2023 11:34:03
beanbear
Hallo, ich hab im Netz ein Makro gefunden, mit dem ich aus einer Exceldatei heraus Serienbriefe mit Word erzeugen kann. Nun das Makro funktioniert super. Word startet und füllt mir die Felder aus. Nun habe ich das Makro als Modul in eine Personal.xlsb gepackt, damit ich es immer bei Neustart von Excel zur Verfügung habe. Nun startet zwar Word, aber die Felder werden mit nicht ausgefüllt und im Makro wird mir der Befehl: .Execute Pause:=False angezeigt. Kann mir bitte jemand helfen das Problem zu lösen?? Bin KEIN VBA Profi darum bitte ich mir das verständlich zu erklären. Dank Euch gleich mal... VG beanbear
Sub Serienbrief()
'https://www.ms-office-forum.net/forum/showthread.php?t=251123
Dim oWord As Object
Dim oDoc As Object
Dim strLaufwerkDateiname As String
'Serienbrief Dateiname
strLaufwerkDateiname = "C:\Temp\Serienbrief.docx"
Set oWord = CreateObject("word.application")
Set oDoc = oWord.Documents.Open(strLaufwerkDateiname)
oWord.Visible = True
oWord.Application.Activate 'Dokument wird in den Vordergrund geholt
oDoc.MailMerge.MainDocumentType = 0 'wdFormLetters = 0. Gibt einen Typ von Seriendruckdokument an.
oDoc.MailMerge.OpenDataSource Name:=ThisWorkbook.FullName _
, ConfirmConversions:=False, LinkToSource:=True, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & _
ThisWorkbook.FullName & _
";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Je" _
, SQLStatement:="SELECT * FROM `Tabelle1$`", SQLStatement1:="", SubType:=1
With oDoc.MailMerge
'wdSendToNewDocument = 0. Die Ergebnisse werden aus dem Serienbrief in ein neues Dokument übertragen.
.Destination = 0
'Wenn Seriendruckfelder leer sind, werden die leere Zeilen im Seriendruckdokument unterdrückt.
.SuppressBlankLines = True
With .DataSource
'wdDefaultFirstRecord = 1. Aus dem Hauptdokument mit den Datensätzen 1 bis
.FirstRecord = 1
'wdDefaultLastRecord = -16. Zum letzten Datensatz zusammengeführt
.LastRecord = -16
End With
.Execute Pause:=False >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FEHLER
End With
'Das Seriendruckdokument wird ohne Speichern geschlossen
oDoc.Close SaveChanges:=0
Set oDoc = Nothing
Set oWord = Nothing
End Sub