Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
Printing directory...page break at change of initial cap
Sorry, but I haven't printed out a directory in years so I'm a little rusty.
I'm using Office 02 and trying to print out my Outlook contacts. However, I want to keep the contacts grouped by initial cap of the "file As". I couldn't find the command from using either Outlook or Word to do the merge. Sample: Amirmoazzami, Soheil Dentist Aqunio, Vincent BLS-New York Buffone, John NPD ===page break=== Carlson, Stan Coldwell Banker Chatman, Shawna Xerox Clark, Lyn Pierce College Crawford, Erin AC Nielsen Customer Service, World Travel/ BTI ===page break=== Davie, Margaret Management Ventures Donahue, Jamie Canon Dr. Gordon, Optometrist Thank you. |
#2
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
Printing directory...page break at change of initial cap
It can't be done out of the box, however, 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. ' 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 Left(scat, 1) Left(tcat, 1) 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 "Victoria @ WB" wrote in message ... Sorry, but I haven't printed out a directory in years so I'm a little rusty. I'm using Office 02 and trying to print out my Outlook contacts. However, I want to keep the contacts grouped by initial cap of the "file As". I couldn't find the command from using either Outlook or Word to do the merge. Sample: Amirmoazzami, Soheil Dentist Aqunio, Vincent BLS-New York Buffone, John NPD ===page break=== Carlson, Stan Coldwell Banker Chatman, Shawna Xerox Clark, Lyn Pierce College Crawford, Erin AC Nielsen Customer Service, World Travel/ BTI ===page break=== Davie, Margaret Management Ventures Donahue, Jamie Canon Dr. Gordon, Optometrist Thank you. |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Using odd page bread to start a new chapter on an odd page | Microsoft Word Help | |||
Changing page number | Microsoft Word Help | |||
Printing labels on dot matrix without page break | Microsoft Word Help | |||
Printing and Folding a 40 Page Booklet in WORD 2003 | Page Layout | |||
FIrst page footers | Microsoft Word Help |