View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_6_] Bob Phillips[_6_] is offline
external usenet poster
 
Posts: 11,272
Default Combining On Open Macros

Problem.

On 1st Feb, when first opened, Jan will be visible, Feb will not. As soon as
it executes the line

Sheets("Jan").Visible = MyMonth = 1

it will fail as it is trying to hide the last visible sheet. You probably
only need

Sub Workbook_Open()
Dim iThisMonth As Long
Dim iLastMonth As Long
Dim sThisMonth As String
Dim sLastMonth As String

iThisMonth = Month(Date)
iLastMonth = iThisMonth - 1
If iLastMonth = 0 Then iLastMonth = 12

sThisMonth = Format(DateValue(Year(Date) & "-" & iThisMonth & "-01"),
"mmm")
Worksheets(sThisMonth).Visible = True

sLastMonth = Format(DateValue(Year(Date) & "-" & iLastMonth & "-01"),
"mmm")
Worksheets(sLastMonth).Visible = False

End Sub


Of course assuming that the workbook is properly setup manually.


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Dana DeLouis" wrote in message
...
Would any ideas here help?

Sub Workbook_Open()
Dim MyMonth As Long
MyMonth = Month(Now())

Sheets("Jan").Visible = MyMonth = 1
Sheets("Feb").Visible = MyMonth = 2
Sheets("Mar").Visible = MyMonth = 3
End Sub

HTH
--
Dana DeLouis
Win XP & Office 2003


"Natalie" wrote in message
...
Cheers!!
-----Original Message-----
Add the following line to the end of your Workbook_Open

macro:

Call ProtectAllSheets

or just:

ProtectAllSheets

(I prefer to use the Call terminology because it makes

it clear that you are
calling another macro, but it is not required.)

--

Vasant

"Natalie" wrote in

message
...
Hello All,

I have two macros: 1 to Protect All Sheets and 1 to

Hide
sheets based on the month name. (Codes are below)

At the moment the Hide macro runs when the file opens

but
the Protection one is run by click a macro button.

Basically I would like to combine the two so that when

a
user opens a file it is protected and the hide macro

runs.

Any help will be greatfully appreciated!

Natalie

Sub ProtectAllSheets()
Application.ScreenUpdating = False
Dim n As Single
For n = 1 To Sheets.Count
Sheets(n).Protect Password:="justme"
Next n
Application.ScreenUpdating = True
End Sub



Sub Workbook_Open()

Dim MyMonth As Integer
MyMonth = Month(Now())

Select Case MyMonth

Case 1 'If month number is 1 (Jan)
Sheets("Feb").Visible = False
Sheets("Mar").Visible = False
Case 2 'If Month number is 2 (Feb)
Sheets("Jan").Visible = False
Sheets("March").Visible = False
Case 3 'If Month number is 3 (Mar)
Sheets("Jan").Visible = False
Sheets("Mar").Visible = True
Sheets("Feb").Visible = False
End Select
End Sub




.