Reply
 
Thread Tools Display Modes
  #1   Report Post  
Parisa
 
Posts: n/a
Default Mail merge by group

I have a mail merge I'm working on that appears to be a bit of a challenge.
A contract number can have more than one contract type. If I try to merge
the data below I get 7 documents (000022222, 000022222, 000022222,
000022222, 000022223, 000022223 000022225) when in fact there are only three
unique documents (000022222, 000022223, 000022225) How do I place all of the
information of a particular contract in its own document?

FYI: I cannot use Access because our company does not have it.

Contract No. Contract Title Contract Type Author
000022222 Title1 international Smith
000022222 Title1 domestic Smith
000022222 Title1 NAFTA Smith
000022222 Title1 Asia Smith
000022223 Title1 US Jeffrey
000022223 Title1 Asia Jeffrey
000022225 Title1 domestic Jones

Any suggestions?
Please explain slowly as am not experienced in vba.

Thanks
P

  #2   Report Post  
Doug Robbins - Word MVP
 
Posts: n/a
Default Mail merge by group

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

"Parisa" wrote in message
...
I have a mail merge I'm working on that appears to be a bit of a challenge.
A contract number can have more than one contract type. If I try to merge
the data below I get 7 documents (000022222, 000022222, 000022222,
000022222, 000022223, 000022223 000022225) when in fact there are only
three
unique documents (000022222, 000022223, 000022225) How do I place all of
the
information of a particular contract in its own document?

FYI: I cannot use Access because our company does not have it.

Contract No. Contract Title Contract Type Author
000022222 Title1 international Smith
000022222 Title1 domestic Smith
000022222 Title1 NAFTA Smith
000022222 Title1 Asia
Smith
000022223 Title1 US
Jeffrey
000022223 Title1 Asia
Jeffrey
000022225 Title1 domestic Jones

Any suggestions?
Please explain slowly as am not experienced in vba.

Thanks
P



  #3   Report Post  
Parisa
 
Posts: n/a
Default Mail merge by group



"Doug Robbins - Word MVP" wrote:

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

"Parisa" wrote in message
...
I have a mail merge I'm working on that appears to be a bit of a challenge.
A contract number can have more than one contract type. If I try to merge
the data below I get 7 documents (000022222, 000022222, 000022222,
000022222, 000022223, 000022223 000022225) when in fact there are only
three
unique documents (000022222, 000022223, 000022225) How do I place all of
the
information of a particular contract in its own document?

FYI: I cannot use Access because our company does not have it.

Contract No. Contract Title Contract Type Author
000022222 Title1 international Smith
000022222 Title1 domestic Smith
000022222 Title1 NAFTA Smith
000022222 Title1 Asia
Smith
000022223 Title1 US
Jeffrey
000022223 Title1 Asia
Jeffrey
000022225 Title1 domestic Jones

Any suggestions?
Please explain slowly as am not experienced in vba.

Thanks
P




I'll try your suggestions. However your third suggestions seems to be out of
my league but I'll try. Thanks
  #4   Report Post  
Posted to microsoft.public.word.mailmerge.fields
jdb
 
Posts: n/a
Default Mail merge by group

The Macro solution works near-perfectly. There was a syntax error in the
macro, but I just guessed about what it might be and, sure enough, it works.
Thanks.

I do have one question - after I run the macro, all the formatting is lost -
page layout, font, bold, etc. Is there a way to rpeserve the formatting
information while running it?

Thanks again.



--
Joe


"Doug Robbins - Word MVP" wrote:

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

"Parisa" wrote in message
...
I have a mail merge I'm working on that appears to be a bit of a challenge.
A contract number can have more than one contract type. If I try to merge
the data below I get 7 documents (000022222, 000022222, 000022222,
000022222, 000022223, 000022223 000022225) when in fact there are only
three
unique documents (000022222, 000022223, 000022225) How do I place all of
the
information of a particular contract in its own document?

FYI: I cannot use Access because our company does not have it.

Contract No. Contract Title Contract Type Author
000022222 Title1 international Smith
000022222 Title1 domestic Smith
000022222 Title1 NAFTA Smith
000022222 Title1 Asia
Smith
000022223 Title1 US
Jeffrey
000022223 Title1 Asia
Jeffrey
000022225 Title1 domestic Jones

Any suggestions?
Please explain slowly as am not experienced in vba.

Thanks
P




  #5   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Doug Robbins - Word MVP
 
Posts: n/a
Default Mail merge by group

Not sure to which macro you are refering here.

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

"jdb" wrote in message
...
The Macro solution works near-perfectly. There was a syntax error in the
macro, but I just guessed about what it might be and, sure enough, it
works.
Thanks.

I do have one question - after I run the macro, all the formatting is
lost -
page layout, font, bold, etc. Is there a way to rpeserve the formatting
information while running it?

Thanks again.



--
Joe


"Doug Robbins - Word MVP" wrote:

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

"Parisa" wrote in message
...
I have a mail merge I'm working on that appears to be a bit of a
challenge.
A contract number can have more than one contract type. If I try to
merge
the data below I get 7 documents (000022222, 000022222, 000022222,
000022222, 000022223, 000022223 000022225) when in fact there are only
three
unique documents (000022222, 000022223, 000022225) How do I place all
of
the
information of a particular contract in its own document?

FYI: I cannot use Access because our company does not have it.

Contract No. Contract Title Contract Type Author
000022222 Title1 international Smith
000022222 Title1 domestic
Smith
000022222 Title1 NAFTA Smith
000022222 Title1 Asia
Smith
000022223 Title1 US
Jeffrey
000022223 Title1 Asia
Jeffrey
000022225 Title1 domestic
Jones

Any suggestions?
Please explain slowly as am not experienced in vba.

Thanks
P






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
Mail Merge Word 2003 Issue S.Nicks Mailmerge 5 February 20th 09 01:55 AM
Mail Merge - Parameter prompts twice... TL Mailmerge 6 June 17th 05 02:58 PM
mail merge with attachments AS Mailmerge 5 April 9th 05 09:49 AM
Mail Merge Issue With Office 97 - Excel Data Source Matt Thorley Mailmerge 1 February 15th 05 11:38 PM
Word-Excel 2003 - Mail Merge Recipients problem AYager Mailmerge 2 January 11th 05 04:11 AM


All times are GMT +1. The time now is 01:06 PM.

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"