If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
How do I set up a conditional page break in word mailmerge?
I would like to inseert a pagebreak every time the value of a field changes.
Its for classes at a school. I want the labels for each class on a separate page. How can this be done? Thanks |
#2
|
|||
|
|||
Word does not really have the ability to perform a "multiple items per
condition (=key field)" mailmerge. See the "Multiple items per condition" item under the "Special merges" section of fellow MVP Cindy Meister's website at http://homepage.swissonline.ch/cindy...r/MergFram.htm Or, if you create a Catalog (on in Word XP and later, it's called Directory) type mailmerge main document with the mergefields in the cells of a one row table in the mailmerge main document with the keyfield in the first cell in the row and then execute that merge to a new document and then run the following macro, it will create separate tables with the records for each key field in them. With a bit of further development, you may be able to get it to do what you want. ' 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 -- 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 "Shandyw" wrote in message ... I would like to inseert a pagebreak every time the value of a field changes. Its for classes at a school. I want the labels for each class on a separate page. How can this be done? Thanks |
#3
|
|||
|
|||
Thanks Doug
"Shandyw" wrote: I would like to inseert a pagebreak every time the value of a field changes. Its for classes at a school. I want the labels for each class on a separate page. How can this be done? Thanks |
#4
|
|||
|
|||
I hope you manage to get this to work. I had a problem a little while ago
and Doug gave me similar guidance. I modified the macro that he posted and it works fine to do what I need. "shandyw" wrote in message ... Thanks Doug |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Odd page section break | Jenny | Page Layout | 5 | December 15th, 2004 08:05 AM |
FIrst page footers | Noel S Pamfree | General Discussion | 7 | December 6th, 2004 08:49 PM |
Omit Page # on first page | JethroUK© | New Users | 16 | June 17th, 2004 09:20 PM |
odd page section breaks | Bill Mitchell | Formatting Long Documents | 6 | June 17th, 2004 02:20 PM |
word error | mac | General Discussions | 1 | May 6th, 2004 08:14 AM |