Open to today's date

K

KathyN

Hello

I have a workbook with a sheet for each week of the year. The dates are in
the same row in each sheet. I would like to be able to have the workbook
open to the sheet that contains today's date.

Thanks for your help!
 
R

Rick Rothstein \(MVP - VB\)

How are the worksheets named? Which "same row" are the dates in? Which
cells? The more information you give us about your set up, the better able
we are to figure out what to tell you; otherwise, we are reduced to pure
guessing and those guesses usually turn out to be wrong.

Rick
 
J

Joel

This code will open the correct sheet for the current week. You need to
modify the code to match your sheet names. The code uses Sunday as the 1st
day of the week. The 1st week of the year can have less than 7 days if the
year doesn't start on a Sunday.

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)

Jan1 = DateSerial(Year(Date), 1, 1)
DayofWeek = Weekday(Jan1)
FirstSunday = Jan1 - DayofWeek + 1 'Sunday may be inprevious year

Weeknumber = Int((Date - FirstSunday) / 7)
SheetName = "Week_" '<=modify to match your sheet names
Worksheets(SheetName & Weeknumber).Activate
End Sub
 
K

KathyN

Rick,

The worksheets are named 'WE m/d' corresponding to each Friday, i.e. WE 5/9.
The dates are in cells B3:G3 in each sheet, and are formatted m/dd/yyy.

Thanks
 
R

Rick Rothstein \(MVP - VB\)

How are you getting the forward slash into the worksheet's name (as far as I
know, it is an invalid character for use there)?

Rick
 
K

KathyN

You are right - it's a dash, 5-9

Rick Rothstein (MVP - VB) said:
How are you getting the forward slash into the worksheet's name (as far as I
know, it is an invalid character for use there)?

Rick
 
J

Joel

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)

DayofWeek = Weekday(Date)

'6 is the Friday Day considering Sunday as 1
FridayDate = Date + (6 - DayofWeek)

SheetName = "WE " & Month(FridayDate) & "/" & Day(FridayDate)
Worksheets(SheetName & Weeknumber).Activate
Range("B3").Offset(0, DayofWeek - 1).Activate
End Sub
 
R

Rick Rothstein \(MVP - VB\)

This Workbook_Open event code should do what you want...

Private Sub Workbook_Open()
Dim SH As Worksheet
For Each SH In Worksheets
If "WE " & Format(Now + 6 - Weekday(Now) - _
7 * (Weekday(Now) = 7), "m-d") = SH.Name Then
SH.Select
Exit For
End If
Next
End Sub

Rick
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top