#1   Report Post  
Posted to microsoft.public.word.tables
Ward Ward is offline
external usenet poster
 
Posts: 5
Default Nested Tables

Hi,
I work in VBA with nested tables. After nested table (a child- or sub-table)
is selected i do some table formatting to both nested table and parent table.
So in my code i want to Set tblParent to the parent table. But i have no idea
how to address the parent table directly. I know that i can move the range by
counting cells like:

Dim tblParent As Table, tblSelection As Table
Dim rng As Range

' with help of the used table.style name i checked if the Child table is
selected if so:
Set tblSelection = Selection.Range.Tables(1)
Set rng = tblSelection.Cell(1, 1).Range
rng.MoveEnd Unit:=wdCell, Count:=-1
Set tblParent = rng.Tables(1)

But I prefer to address the ParentTable direct. Do you have an idea how?

Thanks,
Ward
  #2   Report Post  
Posted to microsoft.public.word.tables
Lene Fredborg Lene Fredborg is offline
external usenet poster
 
Posts: 1,291
Default Nested Tables

I am not sure whether you will find the following better:

Dim tblParent As Table
Dim nIndex As Long

If Selection.Tables(1).NestingLevel 1 Then 'nested
'Find the index of the first character before the nested table
'that character is in the parent table
nIndex = Selection.Tables(1).Range.Start
Set tblParent = ActiveDocument.Range.Tables(ActiveDocument.Range(0 ,
nIndex).Tables.Count)
End If

I have tested a little. If you have more nesting levels, the code still
selects the first-level table. I am on my way out just now, so I am not able
to experiment further now. Please post back if needed and I will take a look
later.

--
Regards
Lene Fredborg - Microsoft MVP (Word)
DocTools - Denmark
www.thedoctools.com
Document automation - add-ins, macros and templates for Microsoft Word


"Ward" wrote:

Hi,
I work in VBA with nested tables. After nested table (a child- or sub-table)
is selected i do some table formatting to both nested table and parent table.
So in my code i want to Set tblParent to the parent table. But i have no idea
how to address the parent table directly. I know that i can move the range by
counting cells like:

Dim tblParent As Table, tblSelection As Table
Dim rng As Range

' with help of the used table.style name i checked if the Child table is
selected if so:
Set tblSelection = Selection.Range.Tables(1)
Set rng = tblSelection.Cell(1, 1).Range
rng.MoveEnd Unit:=wdCell, Count:=-1
Set tblParent = rng.Tables(1)

But I prefer to address the ParentTable direct. Do you have an idea how?

Thanks,
Ward

  #3   Report Post  
Posted to microsoft.public.word.tables
Ward Ward is offline
external usenet poster
 
Posts: 5
Default Nested Tables

Hi Lene,

Thanks for your answer. I understand that there is no direct adressing, with
a Parent- or Child- methode. Your solution with NestingLevel is more robust
than mine. I will use that. And your methode for "Set Parent" is far better
than mine.
Thanks for helping me futher.

Ward


"Lene Fredborg" wrote:

I am not sure whether you will find the following better:

Dim tblParent As Table
Dim nIndex As Long

If Selection.Tables(1).NestingLevel 1 Then 'nested
'Find the index of the first character before the nested table
'that character is in the parent table
nIndex = Selection.Tables(1).Range.Start
Set tblParent = ActiveDocument.Range.Tables(ActiveDocument.Range(0 ,
nIndex).Tables.Count)
End If

I have tested a little. If you have more nesting levels, the code still
selects the first-level table. I am on my way out just now, so I am not able
to experiment further now. Please post back if needed and I will take a look
later.

--
Regards
Lene Fredborg - Microsoft MVP (Word)
DocTools - Denmark
www.thedoctools.com
Document automation - add-ins, macros and templates for Microsoft Word


"Ward" wrote:

Hi,
I work in VBA with nested tables. After nested table (a child- or sub-table)
is selected i do some table formatting to both nested table and parent table.
So in my code i want to Set tblParent to the parent table. But i have no idea
how to address the parent table directly. I know that i can move the range by
counting cells like:

Dim tblParent As Table, tblSelection As Table
Dim rng As Range

' with help of the used table.style name i checked if the Child table is
selected if so:
Set tblSelection = Selection.Range.Tables(1)
Set rng = tblSelection.Cell(1, 1).Range
rng.MoveEnd Unit:=wdCell, Count:=-1
Set tblParent = rng.Tables(1)

But I prefer to address the ParentTable direct. Do you have an idea how?

Thanks,
Ward

  #4   Report Post  
Posted to microsoft.public.word.tables
Lene Fredborg Lene Fredborg is offline
external usenet poster
 
Posts: 1,291
Default Nested Tables

You are welcome. I am glad I could help.

--
Regards
Lene Fredborg - Microsoft MVP (Word)
DocTools - Denmark
www.thedoctools.com
Document automation - add-ins, macros and templates for Microsoft Word


"Ward" wrote:

Hi Lene,

Thanks for your answer. I understand that there is no direct adressing, with
a Parent- or Child- methode. Your solution with NestingLevel is more robust
than mine. I will use that. And your methode for "Set Parent" is far better
than mine.
Thanks for helping me futher.

Ward


"Lene Fredborg" wrote:

I am not sure whether you will find the following better:

Dim tblParent As Table
Dim nIndex As Long

If Selection.Tables(1).NestingLevel 1 Then 'nested
'Find the index of the first character before the nested table
'that character is in the parent table
nIndex = Selection.Tables(1).Range.Start
Set tblParent = ActiveDocument.Range.Tables(ActiveDocument.Range(0 ,
nIndex).Tables.Count)
End If

I have tested a little. If you have more nesting levels, the code still
selects the first-level table. I am on my way out just now, so I am not able
to experiment further now. Please post back if needed and I will take a look
later.

--
Regards
Lene Fredborg - Microsoft MVP (Word)
DocTools - Denmark
www.thedoctools.com
Document automation - add-ins, macros and templates for Microsoft Word


"Ward" wrote:

Hi,
I work in VBA with nested tables. After nested table (a child- or sub-table)
is selected i do some table formatting to both nested table and parent table.
So in my code i want to Set tblParent to the parent table. But i have no idea
how to address the parent table directly. I know that i can move the range by
counting cells like:

Dim tblParent As Table, tblSelection As Table
Dim rng As Range

' with help of the used table.style name i checked if the Child table is
selected if so:
Set tblSelection = Selection.Range.Tables(1)
Set rng = tblSelection.Cell(1, 1).Range
rng.MoveEnd Unit:=wdCell, Count:=-1
Set tblParent = rng.Tables(1)

But I prefer to address the ParentTable direct. Do you have an idea how?

Thanks,
Ward

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
Nested Tables Going Crazy! Jeeslawees Tables 0 August 30th 08 07:57 PM
Selecting Nested Tables RPMitchal Tables 3 August 28th 08 04:37 PM
For the archive, code to format (styles and column widths) tables and nested tables kbutterly Tables 0 January 24th 07 02:00 PM
reference to nested tables k2sarah Tables 1 October 26th 05 04:23 AM
Help with nested tables Anasazi Tables 2 March 18th 05 04:42 AM


All times are GMT +1. The time now is 04:57 AM.

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

About Us

"It's about Microsoft Word"