Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Mailmerge and Fax / March 2008

Tip: Looking for answers? Try searching our database.

Catalog Mail Merge - Conditionally Insert Page Break

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Someguy51 - 20 Mar 2008 00:04 GMT
Hi,

I'm doing a catalog/directory mail merge.  I want to conditionally insert a
page break.  I was able to do it by having

{ IF {MERGEFIELD nextpagen} > 0, "New Page"}

However the issue is that the data inside my catalog merge is inside a
table.  The "IF" code is at the top of the page and the table with the merge
fields starts right below it.  The final merge has the data on the right
pages but the has a seperate table for each row.  Is there a way I can insert
the page break and have the rows inside one table?

Thank You
Doug Robbins - Word MVP - 20 Mar 2008 03:17 GMT
If you add another column as the first column of the table in your mailmerge
main document and insert the nextpagen field into that cell, and possibly
modify what you now have in the nextpagen field, then execute the merge to a
new document and run the following macro over that document, it will create
a document in which a table is started on a new page every time the data in
the nextpagen field changes

' Macro to create multiple items per condition in separate tables from a
directory type mailmerge

Dim source As Document, target As Document, scat As Range, tcat As Range
Dim data As Range, stab As Table, ttab As Table
Dim i As Long, j As Long, k As Long, n As Long
Set source = ActiveDocument
Set target = Documents.Add
Set stab = source.Tables(1)
k = stab.Columns.Count
Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)
Set scat = stab.Cell(1, 1).Range
scat.End = scat.End - 1
ttab.Cell(1, 1).Range = scat
j = ttab.Rows.Count
For i = 1 To stab.Rows.Count
   Set tcat = ttab.Cell(j, 1).Range
   tcat.End = tcat.End - 1
   Set scat = stab.Cell(i, 1).Range
   scat.End = scat.End - 1
   If scat <> tcat Then
       ttab.Rows.Add
       j = ttab.Rows.Count
       ttab.Cell(j, 1).Range = scat
       ttab.Cell(j, 1).Range.Paragraphs(1).PageBreakBefore = True
       ttab.Rows.Add
       ttab.Cell(j + 1, 1).Range.Paragraphs(1).PageBreakBefore = False
       For n = 2 To k
           Set data = stab.Cell(i, n).Range
           data.End = data.End - 1
           ttab.Cell(ttab.Rows.Count, n - 1).Range = data
       Next n
   Else
       ttab.Rows.Add
       For n = 2 To k
           Set data = stab.Cell(i, n).Range
           data.End = data.End - 1
           ttab.Cell(ttab.Rows.Count, n - 1).Range = data
       Next n
   End If
Next i

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,
>
[quoted text clipped - 13 lines]
>
> Thank You
Someguy51 - 20 Mar 2008 17:53 GMT
Thank you.  That got me going and I solved my issue.

> If you add another column as the first column of the table in your mailmerge
> main document and insert the nextpagen field into that cell, and possibly
[quoted text clipped - 63 lines]
> >
> > Thank You

Rate this thread:






 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.