Re: merge a 1600 record datasource into 1600 separate documents

From: Doug Robbins (dkr_at_NOmvpsSPAM.org)
Date: 10/27/04


Date: Wed, 27 Oct 2004 18:55:35 -0400

If you are not particular about the file names given to each document, then
use:

Sub splitter()

' splitter Macro

' 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

End Sub

If you want to save each document with a specific filename that comes from
the data source, then 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
"Jessica" <Jessica@discussions.microsoft.com> wrote in message 
news:FCDD2A62-26B5-48F1-9975-17FD5C4C3582@microsoft.com...
>I am trying to merge a 1600 record source into 1600 separate documents.  I
> don't want the end result to be 1 document to be with 1600 pages but 1600
> separate documents.  Has anyone ever done this or do you know if it can be
> done?
> 


Relevant Pages

  • Re: How do I protect a document that will be a mail merge?
    ... You could perform the merge to a new document, then use a macro to split ... that document into separate documents for each recipient and apply ... catalog type mailmerge maindocument which creates a word document containing ... Dim i As Long, doctext As Range, target As Document ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Using merge, how do I create multiple, separately saved docume
    ... > ' Macro created by Doug Robbins to save each letter created by a mailmerge ... > Set Target = Documents.Add ... > catalog type mailmerge maindocument which creates a word document containing ...
    (microsoft.public.word.mailmerge.fields)
  • Re: mail merge to more than one documents
    ... If you run the following macro over the document produced by executing the ... it will split that document into separate documents ... ' Macro created by Doug Robbins to save each letter created by a mailmerge ... You first execute that mailmerge, then save that file and close it. ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Merge Multiple Records Individual Documents
    ... If you run the following macro over the document produced by executing the ... it will split that document into separate documents ... ' Macro created by Doug Robbins to save each letter created by a mailmerge ... You first execute that mailmerge, then save that file and close it. ...
    (microsoft.public.word.mailmerge.fields)
  • Re: Saving Mail Merge Records & also printing them.
    ... If however you cannot avoid having a multi section mailmerge main document, ... What happened is that when I ran the macro ... >> ' Throw Away Macro created by Doug Robbins ... >>> 2) Is there a way to print the individual documents instead of saving ...
    (microsoft.public.word.mailmerge.fields)