views:

41

answers:

2

I am very much a beginner when it comes to VBA programming.

I have a Macro that hides or shows columns based on the value in one cell:

Sub HideColumnsMacro()
 Range("b8:o8").EntireColumn.Hidden = False
 v1 = Range("b2").Value + 1
 If v1 < 12 Then
  With Range("b8")
   Range(.Offset(0,v1), .Offset(0, 12)).EntireColumn.Hidden = True
  End With
 End If
End Sub

I want to be able to get this same functionality when I change a cell on a different sheet. Is there a way I can tell this Macro to act on this sheet, when it is run from a different one?

+3  A: 

In your macro, specify the exact sheet:

Sheets("Sheet1").Range("b8:o8").EntireColumn.Hidden = False
Thomas
+1  A: 

Qualify your Ranges with the name of the worksheet:

Sheet1.Range("b8:o8").EntireColumn.Hidden = False
GSerg
+1 arbitrarily had to choose which of these correct answer to accept.
David Oneill