Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Ulticamp Ulticamp is offline
external usenet poster
 
Posts: 2
Default Mail Merge by category into tables

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!
  #2   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default Mail Merge by category into tables

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

"Ulticamp" wrote in message
...
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!



  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Ulticamp Ulticamp is offline
external usenet poster
 
Posts: 2
Default Mail Merge by category into tables

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"?



"Doug Robbins - Word MVP" wrote:

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

"Ulticamp" wrote in message
...
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!




  #4   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP Doug Robbins - Word MVP is offline
external usenet poster
 
Posts: 8,832
Default Mail Merge by category into tables

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.

--
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

"Ulticamp" wrote in message
...
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"?



"Doug Robbins - Word MVP" wrote:

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

"Ulticamp" wrote in message
...
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!






Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Editing Mail Merge Recipients Stan W. Mailmerge 8 May 4th 06 05:03 AM
Mail Merge to Create a List Sorted by Category dhoward via OfficeKB.com Mailmerge 2 April 6th 06 08:47 PM
mail merge with word 2003 ken sunshine New Users 5 March 23rd 06 05:01 PM
Mail Merge Issue With Office 97 - Excel Data Source Matt Thorley Mailmerge 1 February 15th 05 11:38 PM
Using Hyperlinks in Mail Merge IF...THEN...ELSE Statements Mark V Mailmerge 8 November 30th 04 01:31 PM


All times are GMT +1. The time now is 02:52 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"