Reply
 
Thread Tools Display Modes
  #1   Report Post  
Frustrated
 
Posts: n/a
Default How to reference a field's te once if duplicated in successive rec

Hi,

I'd like to use the field "country" as a title for a list of organizations
from that specific country, and have it update the title only when a new
country is encountered. I'm using a catalog merge, but cannot figure out how
to get the country, such as "USA" to print only once over the list of
organizations, and then print a new country title when encountered during the
merge.

I've tried using a bookmark reference and the "if - then -else" field, but
have not figured out a solution.

Can somebody help?

Thanks in advance...
  #2   Report Post  
Doug Robbins
 
Posts: n/a
Default

This macro run on the catalog may 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
"Frustrated" wrote in message
...
Hi,

I'd like to use the field "country" as a title for a list of organizations
from that specific country, and have it update the title only when a new
country is encountered. I'm using a catalog merge, but cannot figure out
how
to get the country, such as "USA" to print only once over the list of
organizations, and then print a new country title when encountered during
the
merge.

I've tried using a bookmark reference and the "if - then -else" field, but
have not figured out a solution.

Can somebody help?

Thanks in advance...



  #3   Report Post  
Frustrated
 
Posts: n/a
Default

Wow...thanks! I will try this out and get back to the listserv

"Doug Robbins" wrote:

This macro run on the catalog may 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
"Frustrated" wrote in message
...
Hi,

I'd like to use the field "country" as a title for a list of organizations
from that specific country, and have it update the title only when a new
country is encountered. I'm using a catalog merge, but cannot figure out
how
to get the country, such as "USA" to print only once over the list of
organizations, and then print a new country title when encountered during
the
merge.

I've tried using a bookmark reference and the "if - then -else" field, but
have not figured out a solution.

Can somebody help?

Thanks in advance...




  #4   Report Post  
Frustrated
 
Posts: n/a
Default

Hi Doug,

I tried the macro, but there was a "compilation error" at the "set ttab = "
line. Couldn't figure out what to do from there!

Thanks again,

"Frustrated"

Wow...thanks! I will try this out and get back to the listserv

"Doug Robbins" wrote:

This macro run on the catalog may 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
"Frustrated" wrote in message
...
Hi,

I'd like to use the field "country" as a title for a list of organizations
from that specific country, and have it update the title only when a new
country is encountered. I'm using a catalog merge, but cannot figure out
how
to get the country, such as "USA" to print only once over the list of
organizations, and then print a new country title when encountered during
the
merge.

I've tried using a bookmark reference and the "if - then -else" field, but
have not figured out a solution.

Can somebody help?

Thanks in advance...




  #5   Report Post  
Doug Robbins
 
Posts: n/a
Default

The following needs to all on one line

Set ttab = target.Tables.Add(Range:=Selection.Range, numrows:=1,
numcolumns:=k - 1)

The email program inserts line breaks that you will need to remove in the
visual basic editor

--
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
"Frustrated" wrote in message
...
Hi Doug,

I tried the macro, but there was a "compilation error" at the "set ttab =
"
line. Couldn't figure out what to do from there!

Thanks again,

"Frustrated"

Wow...thanks! I will try this out and get back to the listserv

"Doug Robbins" wrote:

This macro run on the catalog may 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
"Frustrated" wrote in message
...
Hi,

I'd like to use the field "country" as a title for a list of
organizations
from that specific country, and have it update the title only when a
new
country is encountered. I'm using a catalog merge, but cannot figure
out
how
to get the country, such as "USA" to print only once over the list of
organizations, and then print a new country title when encountered
during
the
merge.

I've tried using a bookmark reference and the "if - then -else"
field, but
have not figured out a solution.

Can somebody help?

Thanks in advance...





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
Having multiple form fields automatically updated jrwaguespack Microsoft Word Help 3 March 25th 05 07:43 AM
Autoupdate cross reference fields Wowbagger Page Layout 3 March 4th 05 09:49 PM
Document reference fields Jeff Microsoft Word Help 3 January 14th 05 07:44 PM
Attempting to auto-update fields in a word document Sanin R Microsoft Word Help 1 January 7th 05 06:39 PM
Is there vba script or reference fields that will recreate a catal Jeanne Moos Mailmerge 1 December 17th 04 10:20 AM


All times are GMT +1. The time now is 11:50 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"