Thread: format table
View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
[email protected] matthias.karl@gmail.com is offline
external usenet poster
 
Posts: 10
Default format table

On 12 Sep., 19:01, wrote:
On 12 Sep., 17:38, Naz wrote:



Hi


I have a standard table format that i use. I want to create a macro that
will apply this format when i select a range and run it in this sort of
sequence


Sub FormatTable()


First row within range
Format1


Rows 2 to 1 before last
Format 2


Last row
Format 3


Whole table
Border 1


End sub


I know how to address ranges, and how to code the formats i need. But dont't
know who to tell VBA which part of the range i want to apply formatting to
i.e. top row, middle section or bottom row.


All help is appreciated.


_______________________
Naz,
London


Naz

This procedure will format the actual selection as you want.

Sub FormatSelection()

* *'Initialize variables
* *Dim MrngToformat As Range
* *Dim MintRows As Integer
* *Dim MintCols As Integer

* *Set MrngToformat = ActiveWindow.RangeSelection 'Use active
selection

* *'Count rows and columns
* *MintRows = MrngToformat.Rows.Count
* *MintCols = MrngToformat.Columns.Count

* *'Format top-row
* *With Range(MrngToformat(1, 1), MrngToformat(1, MintCols))
* * * .Font.Bold = True
* * * .Font.Name = "Times"
* *End With

* *'Format rows in between
* *With Range(MrngToformat(2, 1), MrngToformat(MintRows - 1,
MintCols))
* * * .Font.Italic = True
* * * .Font.Name = "Verdana"
* *End With

* *'Format bottom row
* *With Range(MrngToformat(MintRows, 1), MrngToformat(MintRows,
MintCols))
* * * .Font.Underline = True
* * * .Font.Name = "Tahoma"
* *End With

* *Set MrngToformat = Nothing 'Delete range

End Sub


Forgot to add the border...

Insert this line after the last end with:

MrngToformat.BorderAround LineStyle:=xlContinuous, Weight:=xlMedium,
ColorIndex:=1