Home |
Search |
Today's Posts |
#1
|
|||
|
|||
Mail Merge Directory--identify by state
I'm using the Word mail merge feature to create an information directory.
I'm okay with sorting first by state and then by last name to get the information in the order I want. But what I can't get done is to put the state code (such as "AZ"), which is a field in each record, at the beginning of each section of the list. For example: --------------------------------- AZ Tom Anderson, 222-555-1234 Mary Smith, 222-555-9876 Gillian Williams, 222-555-3500 AK Gracie James, 333-555-9000 Mark Svrcek, 333-555-4545 ---------------------------- Any suggestions to accomplish this would be greatly appreciated. Lyndie |
#2
|
|||
|
|||
Word does not really have the ability to perform a "multiple items per
condition (=key field)" mailmerge. See the "Group Multiple items for a single condition" item on fellow MVP Cindy Meister's website at http://homepage.swissonline.ch/cindy...faq1.htm#DBPic Or take a look at the following Knowledge Base Article How to Work Around Duplicate Names in Mail Merge Data http://support.microsoft.com/default...b;en-us;302665 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 "LyndieBee" wrote in message news I'm using the Word mail merge feature to create an information directory. I'm okay with sorting first by state and then by last name to get the information in the order I want. But what I can't get done is to put the state code (such as "AZ"), which is a field in each record, at the beginning of each section of the list. For example: --------------------------------- AZ Tom Anderson, 222-555-1234 Mary Smith, 222-555-9876 Gillian Williams, 222-555-3500 AK Gracie James, 333-555-9000 Mark Svrcek, 333-555-4545 ---------------------------- Any suggestions to accomplish this would be greatly appreciated. Lyndie |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
How to identify and correct mail merge 'field calculation errors' | Mailmerge | |||
How do I keep records together in a directory with mail merge? | Mailmerge | |||
mail merge with attachments | Mailmerge | |||
Complex Mail Merge using Directory Document Source | Mailmerge | |||
Specific Email Merge w/ Specific Attachements | Mailmerge |