Wie kann ich im Serienbrief einzelne Dateien automatisch erzeugen?
Danke!
Gruß
Frank
Du kannst das mit folgendem Makro erreichen:
Gruss
Silvia Widmer
Sub VieleSerienbriefe()
Dim MM As MailMerge
Set MM = ActiveDocument.MailMerge
MM.DataSource.ActiveRecord = wdLastRecord
Anzahl = MM.DataSource.ActiveRecord
For i = 1 To Anzahl
With MM
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
ActiveDocument.SaveAs FileName:="SB" & i
ActiveDocument.Close
End With
Next i
End Sub
> Wie kann ich im Serienbrief einzelne Dateien automatisch erzeugen?
>
> Du kannst das mit folgendem Makro erreichen:
>
Nur sehe als Problem, dass die Dateien immer noch mit der Datenquelle
verbunden sind, und wenn die Reihenfolge der Daten sich ändern würde
(es kommen neue Datensätze hinzu, oder welche werden gelöscht), dass
der Inhalt der einzelnen Briefe nicht mehr stimmen würde.
Jemand hat einst vorgeschlagen, den Seriendruck in ein neues Dokument
ausführen zu lassen, und dort über die Zentraldok-Funktion alle Briefe
(Section.Range) als Filialdoks einzeln zu speichern. (Man muss den
ersten Absatz des Haupdokuments mit Ebene 1 formatieren.) Zum Beispiel:
Sub MergeToSubDocs()
Dim MergeDoc As Word.Document
Dim ResultDoc As Word.Document
Set MergeDoc = ActiveDocument
With MergeDoc.MailMerge
If .State = wdMainAndDataSource Then
.Destination = wdSendToNewDocument
.Execute
Else
Exit Sub
End If
End With
Set ResultDoc = ActiveDocument
MergeDoc.Close SaveChanges:=wdDoNotSaveChanges
AllSectionsToSubDoc ResultDoc
SaveAllSubDocs ResultDoc
ResultDoc.Close SaveChanges:=wdDoNotSaveChanges
End Sub
Sub AllSectionsToSubDoc(ByRef doc As Word.Document)
Dim secCounter As Long
For secCounter = doc.Sections.Count - 1 To 1 Step -1
doc.Subdocuments.AddFromRange doc.Sections(secCounter).Range
Next secCounter
doc.ActiveWindow.View = wdMasterView
End Sub
Sub SaveAllSubDocs(ByRef doc As Word.Document)
Dim subdoc As Word.Subdocument
Dim newdoc As Word.Document
For Each subdoc In doc.Subdocuments
Set newdoc = subdoc.Open
newdoc.SaveAs FileName:=Left(newdoc.Paragraphs(3).Range.Text, _
Len(newdoc.Paragraphs(3).Range.Text) - 1)
newdoc.Close
Next subdoc
End Sub
Cindy Meister
INTER-Solutions, Switzerland
http://homepage.swissonline.ch/cindymeister
http://go.compuserve.com/MSOfficeForum
Rückfragen & Antworten nur in der Newsgroup, bitte!
Wie kann ich im Serienbrief einzelne Dateien automatisch erzeugen?
Danke!
Gruß
Frank
> ich nutze word, um Rechnungen zu erstellen.
> jeder Kunde soll seine Rechnung als doc.file
> attached an ein email erhalten. Wie kann ich
> im Serienbrief einzelne Dateien automatisch
> erzeugen?
gehe bitte wie folgt vor:
1) Nach Erstellen des Seriendruckhauptdokumentes, gib dieses über "Extras,
Seriendruck, Ausführen, Seriendruck in Neues Dokument" in ein "Neues
Dokument" aus.
2) Du kannst mit einer Makrolösung in dem neuen Dokument die in Abschnitte
ausgebenden Dokumente in einzelnen Dateien speichern. Den VBA-Code und
weitere Informationen hierzu findest du in einem Artikel in der Microsoft
Knowledge Base:
WD97: How to Save Each Section of Doc As Separate File [Q216201]
http://support.microsoft.com/support/kb/articles/q216/2/01.asp
Lass uns wissen, wenn du weitere Hilfe benötigst. Bitte gib dann auch die
verwendete Version von Microsoft Word an.
--
Schöne Grüße Thomas Löwe [Microsoft MVP Word]
Bitte alle Supportanfragen in die Newsgroup stellen.
Microsoft KB: englisch: http://support.microsoft.com/support/search/
Microsoft KB: deutsch : http://search.microsoft.com/germany/supportkb
Zum Feintuning:
Wie bringe ich ihn dazu ein bestimmtes Template zu nutzen
und wie kann ich den Code aktivieren, ohne das jeweilige
File öffnen zu müssen. (in der Code Beschreibung steht, dass
es im Hintergund ausgeführt werden kann)
Danke!
Gruß
Frank
Thomas Löwe [MS MVP Word] <suppor...@young-world.com> schrieb in im
Newsbeitrag: eAGphGI1$GA....@cppssbbsa02.microsoft.com...
Sag mal, nutzt bzw.,. probierst Du die Vorschläge welche man Dir hier macht
eigentlich aus, oder sammelst Du diese nur wie andere Briefmarken?
Du hast jetzt schon vier Lösungswege.
Die beiden Lösungsvorschläge, welche Thomas Dir indirekt macht, gehen davon
aus, dass Du das Resultat des Serienbriefes mit einem diesem Makro
bearbeitest.
Gruss
Silvia Widmer
> ich nutze word, um Rechnungen zu erstellen.
> jeder Kunde soll seine Rechnung als doc.file
> attached an ein email erhalten.
>
Wenn Du als Seriendruck Ziel "Elektronische E-mail" wählst, und im
Setup dialog das Kontrollkästchen "Attachment" aktivierst, soll
als Ergebnis jedes Dokument als Attachment zu einer Email an die E-mail
Adresse erstellt werden.