Solved

Table Style Not Applying Correctly via VBA

Posted on 2009-05-15
6
834 Views
Last Modified: 2012-05-07
I have a form where the user can click on check buttons to apply heading row formatting or last row formatting and they have a selection of my own table styles to choice from.

The problem I have is when a table already has heading row and last row formatting applied and then I run the form and tell it to not apply header row formatting or last row formatting.

It is almost like it doesn't activiate.  It removes the bolding which is correct and part of the table style but it won't remove the shading and lines.

If after you have run the code you click in the table and then click Table | AutoFormat then you will see that the ticks have been taken off but it hasnt been activated in the table.  If you press APPLY now manually it will work, but it doesnt work by code.

Any ideas how I can get this to activate fully?  I'm only new to code writing.
Private Sub CommandButton2_Click()

 

      

  'Turn all formatting features off

  

    With Selection.Tables(1)

        .ApplyStyleFirstColumn = False

        .ApplyStyleHeadingRows = False

        .ApplyStyleLastColumn = False

        .ApplyStyleLastRow = False

    End With

 

  'start my formatting here

  

   If ApplyTable.OBTableA = True Then

 

    With Selection.Tables(1)

        .Style = "My Table Grid"

         

        

                If ApplyTable.CBHeadingRow = True Then

                .ApplyStyleHeadingRows = True

                Else

               .ApplyStyleHeadingRows = False

                End If

 

               If ApplyTable.CBLastRow = True Then

               .ApplyStyleLastRow = True

             Else

               .ApplyStyleLastRow = False

               End If

 

        .ApplyStyleFirstColumn = False

        .ApplyStyleLastColumn = False

    

    End With

 

 

    Else

 

        With Selection.Tables(1)

            .Style = "My Table Normal"

 

 

               If ApplyTable.CBHeadingRow = True Then

                .ApplyStyleHeadingRows = True

                Else

                .ApplyStyleHeadingRows = False

                End If

 

             If ApplyTable.CBLastRow = True Then

               .ApplyStyleLastRow = True

               Else

               .ApplyStyleLastRow = False

               End If

            

            .ApplyStyleFirstColumn = False

            .ApplyStyleLastColumn = False

        

        End With

 

 

    End If

        

    Selection.Tables(1).Rows(1).Cells(1).Select

    Selection.Collapse Direction:=wdCollapseStart

    

    Unload ApplyTable

      

    

End Sub

Open in new window

0
Comment
Question by:Fi69
  • 3
  • 3
6 Comments
 
LVL 37

Expert Comment

by:Joanne M. Orzech
ID: 24416292
I'm just jumping in here real quick (and I don't have time to research this thoroughly right now) but.... maybe you can just reset the whole table to normal and then apply your styles?
    With Selection.Tables(1)

        .Style = "Table Normal"

    End With
 

or
 
 

     With Selection.Tables(1)

        .Style = "Table Normal"

        .ApplyStyleHeadingRows = True

        .ApplyStyleLastRow = False

        .ApplyStyleFirstColumn = True

        .ApplyStyleLastColumn = False

    End With

Open in new window

0
 

Author Comment

by:Fi69
ID: 24417389
I tried doing that but that doesn't work either.  To be honest I think it is a bug.
0
 
LVL 37

Assisted Solution

by:Joanne M. Orzech
Joanne M. Orzech earned 100 total points
ID: 24425628
Well, I know there were issues with Word 2003's table styles....

http://www.shaunakelly.com/word/tablestyles/index.html

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Accepted Solution

by:
Fi69 earned 0 total points
ID: 24427119
To fix this problem I have written code to do what the table style should do.
0
 
LVL 37

Expert Comment

by:Joanne M. Orzech
ID: 24432092
Good for you!
0
 

Author Comment

by:Fi69
ID: 24461218
Thanks for your comments
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

This article describes how to use the Send to Mail Recipient command. The instructions apply generally to Office 2007 and later versions, but Microsoft® Word 2013 was used for the specific steps and figures.  What is Send to Mail Recipient? Send…
This article describes some techniques which will make your VBA or Visual Basic Classic code easier to understand and maintain, whether by you, your replacement, or another Experts-Exchange expert.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
This video shows the viewer how to set up and create Footnotes in their document. Click on the References tab: Select "Insert Footnote": Type in desired text:

706 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now