mail merge to more than one documents

M

Matthias Greinke

hi

Is it possible to merge records into a new document per record? Example: I´m
having 200 records in Excel, which shall be merged with a Word letter into
200 new documents... I have searched everywhere on newsgroups and asked
friends, noone seems to know :eek:/ So thanx for any helpful comment.
/Matthias
 
C

Cindy M -WordMVP-

Hi Matthias,
Is it possible to merge records into a new document per record? Example: I´m
having 200 records in Excel, which shall be merged with a Word letter into
200 new documents...
You'd have to use VBA to accomplish this. Either by splitting the merge result
into separate documents, or by passing the data directly from Excel into Word
(no mailmerge).

You'll find an example for both on my website. Splitting a main merge document
into multiple documents is explained exactly for that purpose. The other
method is in the WdAcc97.zip sample file mentioned in the article on
"one-to-many" types of mail merges.

Cindy Meister
INTER-Solutions, Switzerland
http://homepage.swissonline.ch/cindymeister (last update Jun 8 2004)
http://www.word.mvps.org

This reply is posted in the Newsgroup; please post any follow question or
reply in the newsgroup and not by e-mail :)
 
D

Doug Robbins

If you run the following macro over the document produced by executing the
merge to a new document, it will split that document into separate documents
for each record, saving them with a sequential number:

' Macro created by Doug Robbins to save each letter created by a mailmerge
as a separate file.

Dim i As Long, Source as Document, Target as Document, Letter as Range
Set Source = ActiveDocument
For i = 1 to Source.Sections.Count
Set Letter = Source.Sections(i).Range
Letter.End=Letter.End-1
Set Target = Documents.Add
Target.Range=Letter
Target.SaveAs FileName:="Letter" & i
Target.Close
Next i

If you want to save them with a filename obtained from a field in the data
source,
here's a method that I have used that involves creating a separate
catalog type mailmerge maindocument which creates a word document containing
a table in each row of which would be your data from the database that you
want to use as the filename.

You first execute that mailmerge, then save that file and close it. Then
execute the mailmerge that you want to create the separate files from and
with the
result of that on the screen, run a macro containing the following code
and when the File open dialog appears, select the file containing the table
created by the first mailmerge

' Throw Away Macro created by Doug Robbins
'
Dim Source As Document, oblist As Document, DocName As Range, DocumentName
As String
Dim i As Long, doctext As Range, target As Document
Set Source = ActiveDocument
With Dialogs(wdDialogFileOpen)
.Show
End With
Set oblist = ActiveDocument
Counter = 1
For i = 1 To oblist.Tables(1).Rows.Count
Set DocName = oblist.Tables(1).Cell(i, 1).Range
DocName.End = DocName.End - 1

'Change the path in the following command to suit where you want to save
the documents.
DocumentName = "I:\WorkArea\Documentum\" & DocName.Text
Set doctext = Source.Sections(i).Range
doctext.End = doctext.End - 1
Set target = Documents.Add
target.Range.FormattedText = doctext
target.SaveAs FileName:=DocumentName
target.Close
Next i


--
Please respond to the Newsgroup for the benefit of others who may be
interested. Questions sent directly to me will only be answered on a paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top