The following code was put together for someone who wanted to compile a
document by taking alternate pages from separate files. If you were to
execute two separate mail merges to individual documents, you could use this
code to then combine them into one.
Dim sourcea As Document, sourceb As Document, target As Document, Pages
As Integer, Counter As Integer, targetrange As Range 'targetrange added
Dim evenpage As Range
Set sourcea = Documents.Open(FileName:="...")
sourcea.Repaginate
Pages = ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
MsgBox Pages
Set sourceb = Documents.Open(FileName:="...")
Set target = Documents.Add
target.PageSetup.LeftMargin = sourcea.PageSetup.LeftMargin
target.PageSetup.RightMargin = sourcea.PageSetup.RightMargin
target.PageSetup.TopMargin = sourcea.PageSetup.TopMargin
target.PageSetup.BottomMargin = sourcea.PageSetup.BottomMargin
target.AcceptAllRevisions
Counter = 0
While Counter < Pages
sourcea.Activate
ActiveDocument.Bookmarks("\page").Range.Copy
Set targetrange = target.Range
targetrange.Start = targetrange.End
targetrange.Paste
ActiveDocument.Bookmarks("\page").Range.Cut
sourceb.Activate 'Assumed to be the document containing the even
pages
Selection.EndKey Unit:=wdStory 'Line of code added to start from the
end of the document
ActiveDocument.Bookmarks("\page").Range.Copy
Set targetrange = target.Range
targetrange.Start = targetrange.End
targetrange.Paste
targetrange.Start = targetrange.End
targetrange.InsertBreak Type:=wdPageBreak
Set evenpage = ActiveDocument.Bookmarks("\page").Range
evenpage.Start = evenpage.Start - 1
evenpage.Delete
Counter = Counter + 1
Wend
sourcea.Close wdDoNotSaveChanges
sourceb.Close wdDoNotSaveChanges

Signature
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
> I've been searching for hours and can't figure this out!
>
[quoted text clipped - 16 lines]
> Thanks for the help!
> kj
Karen Jernigan - 27 Jun 2006 21:56 GMT
Thanks, Doug! From where do I begin this process?
> The following code was put together for someone who wanted to compile a
> document by taking alternate pages from separate files. If you were to
[quoted text clipped - 96 lines]
> > Thanks for the help!
> > kj
Doug Robbins - Word MVP - 28 Jun 2006 04:35 GMT
Execute each merge to a new document, save (I would call one "front" and the
other "back") and close each one, then run the macro and it will ask you to
open each one in turn.

Signature
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
> Thanks, Doug! From where do I begin this process?
>
[quoted text clipped - 107 lines]
>> > Thanks for the help!
>> > kj
Karen Jernigan - 28 Jun 2006 06:49 GMT
I'm afraid I don't know where to begin to run the macro.
> Execute each merge to a new document, save (I would call one "front" and the
> other "back") and close each one, then run the macro and it will ask you to
[quoted text clipped - 111 lines]
> >> > Thanks for the help!
> >> > kj
Doug Robbins - Word MVP - 28 Jun 2006 12:29 GMT
see http://www.gmayor.com/installing_macro.htm

Signature
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
> I'm afraid I don't know where to begin to run the macro.
>
[quoted text clipped - 125 lines]
>> >> > Thanks for the help!
>> >> > kj
Karen Jernigan - 29 Jun 2006 07:55 GMT
Hi Doug,
I followed the instructions and am getting the following error when I try to
run the Macro - Compile Error. Invalid Outside Procedure. Thanks so much for
your help!
Here's how the Macro looks:
Dim sourcea As Document, sourceb As Document, target As Document, Pages As
Integer, Counter As Integer, targetrange As Range 'targetrange added Dim
evenpage As Range
Set sourcea = Documents.Open(FileName:="...")
sourcea.Repaginate Pages =
ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
MsgBox Pages
Set sourceb = Documents.Open(FileName:="...")
Set target = Documents.Add
target.PageSetup.LeftMargin = sourcea.PageSetup.LeftMargin
target.PageSetup.RightMargin = sourcea.PageSetup.RightMargin
target.PageSetup.TopMargin = sourcea.PageSetup.TopMargin
target.PageSetup.BottomMargin = sourcea.PageSetup.BottomMargin
target.AcceptAllRevisions
Counter = 0
While Counter < Pages
sourcea.Activate
ActiveDocument.Bookmarks("\page").Range.Copy
Set targetrange = target.Range
targetrange.Start = targetrange.End
targetrange.Paste
ActiveDocument.Bookmarks("\page").Range.Cut
sourceb.Activate 'Assumed to be the document containing the even pages
Selection.EndKey Unit:=wdStory 'Line of code added to start from the end of
the document
ActiveDocument.Bookmarks("\page").Range.Copy
Set targetrange = target.Range
targetrange.Start = targetrange.End
targetrange.Paste
targetrange.Start = targetrange.End
targetrange.InsertBreak Type:=wdPageBreak
Set evenpage = ActiveDocument.Bookmarks("\page").Range
evenpage.Start = evenpage.Start - 1
evenpage.Delete
Counter = Counter + 1
Wend
sourcea.Close wdDoNotSaveChanges
sourceb.Close wdDoNotSaveChanges
Sub MergeDocs()
'
' MergeDocs Macro
' Macro created 6/29/2006 by Karen Jernigan
'
End Sub
> see http://www.gmayor.com/installing_macro.htm
>
[quoted text clipped - 127 lines]
> >> >> > Thanks for the help!
> >> >> > kj
Doug Robbins - Word MVP - 29 Jun 2006 12:05 GMT
The code that you have shown needs to be prefaced by Sub Something()
e.g
Sub CombineDocs()
code
End Sub

Signature
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
> Hi Doug,
>
[quoted text clipped - 228 lines]
>> >> >> > Thanks for the help!
>> >> >> > kj
Karen Jernigan - 30 Jun 2006 00:16 GMT
Now I get an error message that it can't find the file. I've never worked
with Macros before so I'm not really sure what to look for.
Here's the Macro string pertaining to the file name.
Set sourcea = Documents.Open(FileName:="...")
> The code that you have shown needs to be prefaced by Sub Something()
>
[quoted text clipped - 238 lines]
> >> >> >> > Thanks for the help!
> >> >> >> > kj
Doug Robbins - Word MVP - 30 Jun 2006 04:39 GMT
Inside the " " in place of the ... you need to type the
drive:\path\filename.doc of the document that you created.
Similarly for the Set souceb

Signature
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
> Now I get an error message that it can't find the file. I've never worked
> with Macros before so I'm not really sure what to look for.
[quoted text clipped - 260 lines]
>> >> >> >> > Thanks for the help!
>> >> >> >> > kj
Karen Jernigan - 30 Jun 2006 09:00 GMT
I fixed the file names and am still getting errors. First I get a small pop
up that says 450 (the number of records) and an OK button. Then both files
launch. When I click the OK button I get the following MS VB popup. Run-time
error '5149': the measurement must be between 0 pt and 1584 pt. I can choose
end, debug or help. End stops the process. Debug takes me to the Macro and
the following line is highlighted: target.PageSetup.LeftMargin =
sourcea.PageSetup.LeftMargin
> Inside the " " in place of the ... you need to type the
> drive:\path\filename.doc of the document that you created.
[quoted text clipped - 229 lines]
> >> >> >> >> >
> >> >> >> >> > I need to layout two unique 4x6 postcards on an 8.5x11 sheet
Doug Robbins - Word MVP - 30 Jun 2006 18:36 GMT
What do you get if you put the command
MsgBox sourcea.PageSetup.LeftMargin
in front of that line of code.

Signature
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
>I fixed the file names and am still getting errors. First I get a small pop
> up that says 450 (the number of records) and an OK button. Then both files
[quoted text clipped - 249 lines]
>> >> >> >> >> > I need to layout two unique 4x6 postcards on an 8.5x11
>> >> >> >> >> > sheet
Karen Jernigan - 30 Jun 2006 23:19 GMT
Hi Doug,
I really appreciate your help, but it's just not working and I need to get
this done. How do I contract with you directly?
Thanks,
kj
> What do you get if you put the command
>
[quoted text clipped - 227 lines]
> >> >> >> >> >>
> >> >> >> >> >> Set targetrange = target.Range
Doug Robbins - Word MVP - 01 Jul 2006 07:20 GMT
Karen,
Send the two files to me. You need to remove the uppercase letters
(REMOVETHIS) from my email address.

Signature
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
> Hi Doug,
>
[quoted text clipped - 250 lines]
>> >> >> >> >> >>
>> >> >> >> >> >> Set targetrange = target.Range