Home |
Search |
Today's Posts |
|
#1
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
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
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
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
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
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
Posted to microsoft.public.word.mailmerge.fields
|
|||
|
|||
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 | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Editing Mail Merge Recipients | Mailmerge | |||
Mail Merge to Create a List Sorted by Category | Mailmerge | |||
mail merge with word 2003 | New Users | |||
Mail Merge Issue With Office 97 - Excel Data Source | Mailmerge | |||
Using Hyperlinks in Mail Merge IF...THEN...ELSE Statements | Mailmerge |