Microsoft Office Forums

Go Back   Microsoft Office Forums > >

Reply
 
Thread Tools Display Modes
  #1  
Old 02-13-2020, 05:43 AM
Dont know Dont know is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Novice
Word VBA coding for tables
 
Join Date: Feb 2020
Posts: 5
Dont know is on a distinguished road
Default Word VBA coding for tables

Help needed please with coding below, currently this works but only if i dont have any tables in the document. I want to be able to continually use macro to add different tables within same document, think its something to do with activedocument.tables (1), how do i name the table if i don't want it to be a set number?

Sub TestCGBT()
Dim oTbl As Table
' TestCGBT Macro


Application.Templates("P:\Templates\CG Research Template.dotm"). _
BuildingBlockEntries("CG body text table").Insert Where:=Selection.Range, _
RichText:=True
ActiveDocument.Tables(1).Cell(1, 1).Range.Select
Selection.SplitTable
Application.Templates("P:\Templates\CG Research Template.dotm"). _
BuildingBlockEntries("Figure 1: Title").Insert Where:=Selection.Range, _
RichText:=True


Selection.Delete Unit:=wdCharacter, Count:=1
Dialogs(wdDialogTableInsertTable).Show

End Sub
Reply With Quote
  #2  
Old 02-13-2020, 06:42 AM
gmayor's Avatar
gmayor gmayor is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Expert
 
Join Date: Aug 2014
Posts: 3,113
gmayor is a glorious beacon of lightgmayor is a glorious beacon of lightgmayor is a glorious beacon of lightgmayor is a glorious beacon of lightgmayor is a glorious beacon of lightgmayor is a glorious beacon of light
Default

Without access to your building blocks - activedocument.tables (1) is the first table in the document, whereas you need to name the table so you can process it by name e.g.



Code:
Set oTbl = Selection.Tables(1)
oTbl.Cell(1, 1).Range.Select
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote
  #3  
Old 02-13-2020, 07:12 AM
Dont know Dont know is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Novice
Word VBA coding for tables
 
Join Date: Feb 2020
Posts: 5
Dont know is on a distinguished road
Default

Thanks for your reply, i changed the code to below, but get a run error 5941 now any ideas?


Sub TestCGBT()
Dim oTbl As Table
' TestCGBT Macro


Application.Templates("P:\Templates\CG Research Template.dotm"). _
BuildingBlockEntries("CG body text table").Insert Where:=Selection.Range, _
RichText:=True

Set oTbl = Selection.Tables(1)
oTbl.Cell(1, 1).Range.Select

Selection.SplitTable
Application.Templates("P:\Templates\CG Research Template.dotm"). _
BuildingBlockEntries("Figure 1: Title").Insert Where:=Selection.Range, _
RichText:=True
Selection.Delete Unit:=wdCharacter, Count:=1
Dialogs(wdDialogTableInsertTable).Show

End Sub
Reply With Quote
  #4  
Old 02-14-2020, 11:33 PM
Guessed's Avatar
Guessed Guessed is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 1,490
Guessed is just really niceGuessed is just really niceGuessed is just really niceGuessed is just really niceGuessed is just really nice
Default

Something doesn't exist. You haven't told us which line is failing so it could be
The template
The first building block may not be in the template
The selection may not contain a table
The second building block may not be in the template
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote
  #5  
Old 02-17-2020, 07:26 AM
Dont know Dont know is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Novice
Word VBA coding for tables
 
Join Date: Feb 2020
Posts: 5
Dont know is on a distinguished road
Default

it works until I paste the lst building block entry, but then i think the problem is the cursor is then select on the paragraph after the the building block(table) entry rather than in the table, so it cannot select. Can you ask to select 1st row of table above?

thanks for help
Reply With Quote
  #6  
Old 02-18-2020, 05:31 PM
Guessed's Avatar
Guessed Guessed is offline Word VBA coding for tables Windows 10 Word VBA coding for tables Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 1,490
Guessed is just really niceGuessed is just really niceGuessed is just really niceGuessed is just really niceGuessed is just really nice
Default

Assuming the building block-placed table is IMMEDIATELY above the selection, you could move the selection back into the table by using the .Previous method along the lines of
Code:
  Dim aRng As Range, aTbl As Table, aCell As Cell
  Set aRng = Selection.Range.Paragraphs(1).Previous.Range
  Set aTbl = aRng.Tables(1)
  Set aCell = aTbl.Cell(1, 1)
  aCell.Range.Select
You should be looking to moving away from using the selection object once you have used it to define the initial insertion point.
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote
Reply

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
2 general question about coding puff Excel Programming 1 12-07-2017 08:53 AM
Word VBA coding for tables Problem Coding End of Page DRD992 Word VBA 1 10-12-2017 05:15 PM
Word VBA coding for tables If else statement-Need help with coding rsrasc Excel Programming 4 10-30-2015 01:10 AM
UserForm VBA coding Niclasfa Word VBA 1 04-08-2015 10:23 PM
What kind of coding? ep2002 Excel 3 07-22-2014 07:52 AM


All times are GMT -7. The time now is 07:57 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft