Supportnet / Forum / Textverarbeitung
Brauche Hilfe bei Word Makro Serienbrief in Datei
Frage
Hallo,
Ich habe u.a. Makro, das jeden Datensatz eines Serienbriefs in ein einzelne Word-Datei speichert .
Stammt von [url]http://mypage.bluewin.ch/reprobst/WordFAQ/MMAuto.htm#MMAuto09[/url]
Das funzt auch prima.
Frage1:
Nun möchte aber am Ende keine Doc-Dateien erzeugen sondern txt-Dateien.
Frage2:
Bei jedem Datensatz öffnet sich bei Ausführen des Makros ein Word-Fenster dass sich zwar gleich wieder schliesst aber nervt. Wie kann man dieses minimiert ausführen lassen?
Ich lese jetzt seit 3 Stunden die VB-Hilfe und komm net weiter. Kann mir bitte jemand helfen?
[code]Sub JederDatensatzInEineEigenstaendigeDatei_2()
With ActiveDocument.MailMerge
If .MainDocumentType = wdNotAMergeDocument Then
MsgBox "Das aktive Dokument ist kein Seriendruckhauptdokument."
Exit Sub
End If
.DataSource.ActiveRecord = wdLastRecord
Anzahl = .DataSource.ActiveRecord
If Anzahl = 0 Then
MsgBox "Es wurden keine Datensätze gefunden."
Exit Sub
End If
flag = False
For Each x In .DataSource.DataFields
If x.Name = Schluessel Then
flag = True
Exit For
End If
Next
If flag = False Then
Q = Chr(34)
MsgBox "Das nominierte Feld " & Q & Schluessel & Q & _
" existiert nicht in der Datenquelle."
Exit Sub
End If
.Destination = wdSendToNewDocument
For i = 1 To Anzahl
.DataSource.ActiveRecord = i
dsname = Verzeichnis & "\" & Praefix & _
.DataSource.DataFields(Schluessel).Value & ".doc"
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:=""
ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False
ActiveDocument.Close
Next i
.DataSource.FirstRecord = 1 ´be smart
End With
End Sub
[/code]
greetz
tom
Antwort 1 von gutefrage
Problem gelöst (Änderungen fett):
trotzdem danke:-)
.DataSource.DataFields(Schluessel).Value & ".txt"
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:=""
ActiveDocument.SaveAs FileName:=dsname, FileFormat:=wdFormatText, AddToRecentFiles:=False
ActiveDocument.Close
Next i
.DataSource.FirstRecord = 1 ´be smart
End With
End Sub
trotzdem danke:-)

