Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 911
  • Last Modified:

Table Style Not Applying Correctly via VBA

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
Fi69
Asked:
Fi69
  • 3
  • 3
2 Solutions
 
Joanne M. OrzechManager, Document Services CenterCommented:
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
 
Fi69Author Commented:
I tried doing that but that doesn't work either.  To be honest I think it is a bug.
0
 
Joanne M. OrzechManager, Document Services CenterCommented:
Well, I know there were issues with Word 2003's table styles....

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

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
Fi69Author Commented:
To fix this problem I have written code to do what the table style should do.
0
 
Joanne M. OrzechManager, Document Services CenterCommented:
Good for you!
0
 
Fi69Author Commented:
Thanks for your comments
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now