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 / July 2006

Tip: Looking for answers? Try searching our database.

Mail Merge by category into tables

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Ulticamp - 23 Jul 2006 14:46 GMT
Good morning!

I am using MS Word 2000 and am a fairly adept user.  I have a large Excel
database of vendors that I would like to merge into a catalog, sorted by
Vendor Category.  I followed the Microsoft Tutorial "Use Mail Merge to Create
a List Sorted by Category in Word 2000" and was able to generate that merge
successfully.

I would like to be able to merge my data into tables that have three vendors
across, similar to mailing labels, with the vendor group atop each of the
tables.  I can create a table for each record successfully, however, when I
try to put three next to one another, and use the "next record" command, I am
told I can not insert IF, SKIP, NEXT command in other fields.

Is there a work around?  I really don't want to create a simple mail merge
and manually type in all of the headers...

Thank you so much!
Doug Robbins - Word MVP - 23 Jul 2006 16:23 GMT
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

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

> Good morning!
>
[quoted text clipped - 19 lines]
>
> Thank you so much!
Ulticamp - 23 Jul 2006 17:21 GMT
I get a syntax error on this line:

Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,

how does this macro know to sort by the field "vendor_group"?

> 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
[quoted text clipped - 70 lines]
> >
> > Thank you so much!
Doug Robbins - Word MVP - 23 Jul 2006 22:37 GMT
Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)

needs to be all on one line.

As the introductions says, the keyfield needs to be in the first cell in the
row.  In your case, the keyfield is the vendor_group.

Note that the macro will definity need some modification to do what you
want.

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 get a syntax error on this line:
>
[quoted text clipped - 84 lines]
>> >
>> > Thank you so much!
 
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.