Run macro on open IF its before 9:00 AM

C

ChrisR

I am trying to write an Auto_Open query that will refresh a workbooks
MSQueries (activeworkbook.refreshall) but ONLY if it is opened before 9:00
AM. I do this because I have a scheduler open a number of files before I
get into the office and want the refreshed done before I get there They
take a while so for the same reason I don't want them to refresh when I open
them later in the day to work on them or when other users open them after
they get into the office.

Trying this...

Sub Auto_Open()
If Time < "09:00:00" Then
HandRefreshBigPrice
Else
End If
End Sub

Where HandRefreshBigPrice is another macro that does the refresh all
function and posts the time of refresh to a hidden column.

My problem is that Excel doesn't seem to handle time the way I am expecting.
If I run this macro before 9 AM in the morning nothing happens. Then later
in the day it refreshes. Its like its opposite or something. Do I have to
somehow incorporate the day and not just the time? Is there some easier way
to make this simple task automated?

Any help would be greatly appreciated.

c-
 
N

N10

Hi

This worked for me ;

Private Sub Workbook_Open()

Dim k

k = Time

If Time < "09:00:00" Then Call HandRefreshBigPrice


End Sub

Best N10
 
N

N10

Correction
Hi

This worked for me ;

Private Sub Workbook_Open()

Dim k

k = Time

If k < "09:00:00" Then Call HandRefreshBigPrice


End Sub

Best N10
 
P

PaulD

Since you are working with a date/time variable and not a string, try this
instead

If Time < #9:00:00 AM# Then
....
Paul D

: I am trying to write an Auto_Open query that will refresh a workbooks
: MSQueries (activeworkbook.refreshall) but ONLY if it is opened before 9:00
: AM. I do this because I have a scheduler open a number of files before I
: get into the office and want the refreshed done before I get there They
: take a while so for the same reason I don't want them to refresh when I
open
: them later in the day to work on them or when other users open them after
: they get into the office.
:
: Trying this...
:
: Sub Auto_Open()
: If Time < "09:00:00" Then
: HandRefreshBigPrice
: Else
: End If
: End Sub
:
: Where HandRefreshBigPrice is another macro that does the refresh all
: function and posts the time of refresh to a hidden column.
:
: My problem is that Excel doesn't seem to handle time the way I am
expecting.
: If I run this macro before 9 AM in the morning nothing happens. Then
later
: in the day it refreshes. Its like its opposite or something. Do I have
to
: somehow incorporate the day and not just the time? Is there some easier
way
: to make this simple task automated?
:
: Any help would be greatly appreciated.
:
: c-
:
:
 
D

Dave Peterson

And one more:

if time < timeserial(9,0,0) then


I am trying to write an Auto_Open query that will refresh a workbooks
MSQueries (activeworkbook.refreshall) but ONLY if it is opened before 9:00
AM. I do this because I have a scheduler open a number of files before I
get into the office and want the refreshed done before I get there They
take a while so for the same reason I don't want them to refresh when I open
them later in the day to work on them or when other users open them after
they get into the office.

Trying this...

Sub Auto_Open()
If Time < "09:00:00" Then
HandRefreshBigPrice
Else
End If
End Sub

Where HandRefreshBigPrice is another macro that does the refresh all
function and posts the time of refresh to a hidden column.

My problem is that Excel doesn't seem to handle time the way I am expecting.
If I run this macro before 9 AM in the morning nothing happens. Then later
in the day it refreshes. Its like its opposite or something. Do I have to
somehow incorporate the day and not just the time? Is there some easier way
to make this simple task automated?

Any help would be greatly appreciated.

c-
 

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