Reply
 
Thread Tools Display Modes
  #1   Report Post  
KMMartin
 
Posts: n/a
Default Using merge, how do I create multiple, separately saved documents

I have a single document that I need to merge customer numbers into and then
save as separate documents. There are over 200 so I don't want to do this
manually. I can perform the merge - that's easy. It's getting the merge to
save the results as multiple files rather than a single file of multiple
pages that I'm having problems with. Please help!
  #2   Report Post  
Doug Robbins
 
Posts: n/a
Default

For saving individual mergedocuments, you can use either of the following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do this
manually. I can perform the merge - that's easy. It's getting the merge
to
save the results as multiple files rather than a single file of multiple
pages that I'm having problems with. Please help!



  #3   Report Post  
krstnl
 
Posts: n/a
Default



"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do this
manually. I can perform the merge - that's easy. It's getting the merge
to
save the results as multiple files rather than a single file of multiple
pages that I'm having problems with. Please help!




  #4   Report Post  
krstnl
 
Posts: n/a
Default

I'm very new, please forgive. My data source is an Access table. How do I
use these scripts? I have a source document, an Access table data source,
and a merged target document that has 15 reports strung together like a roll
of toilet paper. I'd like 15 separate documents named based on one of the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do this
manually. I can perform the merge - that's easy. It's getting the merge
to
save the results as multiple files rather than a single file of multiple
pages that I'm having problems with. Please help!




  #5   Report Post  
Graham Mayor
 
Posts: n/a
Default

See http://www.gmayor.com/installing_macro.htm

--

Graham Mayor - Word MVP

My web site www.gmayor.com
Word MVP web site http://word.mvps.org


krstnl wrote:
I'm very new, please forgive. My data source is an Access table.
How do I use these scripts? I have a source document, an Access
table data source, and a merged target document that has 15 reports
strung together like a roll of toilet paper. I'd like 15 separate
documents named based on one of the fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into
and then
save as separate documents. There are over 200 so I don't want to
do this manually. I can perform the merge - that's easy. It's
getting the merge to
save the results as multiple files rather than a single file of
multiple pages that I'm having problems with. Please help!





  #6   Report Post  
Doug Robbins
 
Posts: n/a
Default

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How do
I
use these scripts? I have a source document, an Access table data source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!






  #7   Report Post  
krstnl
 
Posts: n/a
Default

Thank you both! Before you replied though I made a good old college try by
copying and pasting the splitter macro script into the macros I already had
(via macro edit). Then I ran it... ....and later found the documents
("Letter 1" etc) in a higher folder. Kind of successful, but the margins and
tabs were wrong (those of the Normal template?). ? I also saw in your
Throw Away macro that you've got a method for naming the files with a field,
but you base it on first doing a "catalog merge" to get a Word table -- I
don't know how to do that, can I use the Access table?

"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How do
I
use these scripts? I have a source document, an Access table data source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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


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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!




  #8   Report Post  
Doug Robbins
 
Posts: n/a
Default

Different subject, but there's some information on setting up a catalog or
directory merge in
the article "Mail Merge to E-mail with Attachments" at

http://word.mvps.org/FAQs/MailMerge/...ttachments.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
Thank you both! Before you replied though I made a good old college try
by
copying and pasting the splitter macro script into the macros I already
had
(via macro edit). Then I ran it... ....and later found the documents
("Letter 1" etc) in a higher folder. Kind of successful, but the margins
and
tabs were wrong (those of the Normal template?). ? I also saw in your
Throw Away macro that you've got a method for naming the files with a
field,
but you base it on first doing a "catalog merge" to get a Word table -- I
don't know how to do that, can I use the Access table?

"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How
do
I
use these scripts? I have a source document, an Access table data
source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of
the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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


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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into
and
then
save as separate documents. There are over 200 so I don't want to
do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!






  #9   Report Post  
krstnl
 
Posts: n/a
Default

When I run the splitter, the split documents lose all the formatting -- is
there a way to get around that? Thanks ~


"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How do
I
use these scripts? I have a source document, an Access table data source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into and
then
save as separate documents. There are over 200 so I don't want to do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!






  #10   Report Post  
Doug Robbins
 
Posts: n/a
Default

Replace

Target.Range=Letter

with

Target.Range.FormattedText =Letter.FormattedText

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
When I run the splitter, the split documents lose all the formatting -- is
there a way to get around that? Thanks ~


"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How
do
I
use these scripts? I have a source document, an Access table data
source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of
the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into
and
then
save as separate documents. There are over 200 so I don't want to
do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!










  #11   Report Post  
krstnl
 
Posts: n/a
Default

It worked!... and then it didn't! -- before my eyes the new single report
(target) document reverted to different margins (default Normal.dot?),
although it did keep the fonts. Now what? Thanks ~

"Doug Robbins" wrote:

Replace

Target.Range=Letter

with

Target.Range.FormattedText =Letter.FormattedText

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
When I run the splitter, the split documents lose all the formatting -- is
there a way to get around that? Thanks ~


"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is the
active document.

See the article "What do I do with macros sent to me by other newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table. How
do
I
use these scripts? I have a source document, an Access table data
source,
and a merged target document that has 15 reports strung together like a
roll
of toilet paper. I'd like 15 separate documents named based on one of
the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into
and
then
save as separate documents. There are over 200 so I don't want to
do
this
manually. I can perform the merge - that's easy. It's getting the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!









  #12   Report Post  
Doug Robbins
 
Posts: n/a
Default

You will need to create a template that has the desired margins and then
replace the following line

Set Target = Documents.Add

With

Set Target = Documnets.Add("Drive:\Path\Templatename.dot")

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
It worked!... and then it didn't! -- before my eyes the new single report
(target) document reverted to different margins (default Normal.dot?),
although it did keep the fonts. Now what? Thanks ~

"Doug Robbins" wrote:

Replace

Target.Range=Letter

with

Target.Range.FormattedText =Letter.FormattedText

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
When I run the splitter, the split documents lose all the formatting --
is
there a way to get around that? Thanks ~


"Doug Robbins" wrote:

You run the splitter macro in Word when the "roll of toilet paper" is
the
active document.

See the article "What do I do with macros sent to me by other
newsgroup
readers

to help me out?" at:

http://word.mvps.org/FAQs/MacrosVBA/CreateAMacro.htm


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
"krstnl" wrote in message
...
I'm very new, please forgive. My data source is an Access table.
How
do
I
use these scripts? I have a source document, an Access table data
source,
and a merged target document that has 15 reports strung together
like a
roll
of toilet paper. I'd like 15 separate documents named based on one
of
the
fields. Thank you.

"Doug Robbins" wrote:

For saving individual mergedocuments, you can use either of the
following:

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 each file to be named based on one of the fields 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


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of
my
services on a paid consulting basis.

Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers
into
and
then
save as separate documents. There are over 200 so I don't want
to
do
this
manually. I can perform the merge - that's easy. It's getting
the
merge
to
save the results as multiple files rather than a single file of
multiple
pages that I'm having problems with. Please help!











Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Create multiple documents from one and vice versa Village Idiot Dan Microsoft Word Help 7 October 24th 05 02:27 PM
How do I create multiple pages of mail merge listings Kathy Mailmerge 2 July 27th 05 10:11 PM
Combining multiple merge documents cth5c Mailmerge 1 June 15th 05 11:14 AM
Multiple merge with IncludeText generating extraneous hidden chara Judy Mailmerge 4 May 5th 05 03:51 PM
Can you create a multi-layered merge where certain merge fields a. mileszat Mailmerge 3 January 18th 05 03:46 AM


All times are GMT +1. The time now is 04:34 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"