View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.newusers
Oerjan Oerjan is offline
external usenet poster
 
Posts: 2
Default how to find used region with macro

Hi,

sorry if this obvious or has been asked recently.

I have a macro that goes through all rows and all columns in a
selection. If a row or a column is hidden, the font of that row or
column is changed.

A friend wants to use the macro in a Workbook with many sheets. He
asked if I could change it so that he does not need to do a selection
on every sheet before he runs it.

I imagine that a nested loop through all rows and all columns will
take a long time?

I´ve tried to figure out how to get the range defined by the last row
and the last column filled with data.

First I tried with CurrentRegion but then I tried End(xlUP) but the
code I´ve come up with is not reliable. I get strange results.

I would be most thankful for any hint.

BR,
Oerjan Skogloesa
=============

Sub Makro1()
Dim Sh As Worksheet
Dim myColumn As Range
Dim myRange As Range
Dim A, B, C, D, HiRow, HiCol

For Each Sh In ActiveWorkbook.Worksheets

A = Sh.Rows.Count
HiRow = 1

For Each myColumn In Sh.Columns

B = myColumn.Column
C = (Cells(A, B).Address())

D = Range(C).End(xlUp).Row

If D HiRow Then HiRow = D

If D 1 Then HiCol = B

Next myColumn

'this is just for seeing the result
With Sh
..Activate
..Range(.Cells(1, 1), .Cells(HiRow, HiCol)).Select
End With

MsgBox (HiRow & " " & HiCol)

Next Sh

End Sub