View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
OssieMac OssieMac is offline
external usenet poster
 
Posts: 2,510
Default Using If Statements and a Time Variable

Hi,

Try something like this:-

Sub Time_Test()

Dim myTime As Date 'Note times as actually fractions of a date
Dim myMsge As String

myTime = Now - Date

Select Case myTime
Case TimeValue("00:00:01") To TimeValue("11:59:59")
myMsge = "Good Morning"
Case TimeValue("12:00:00") To TimeValue("18:59:59")
myMsge = "Good Afternoon"
Case TimeValue("12:00:01") To TimeValue("23:59:59")
myMsge = "Good Evening"
End Select

MsgBox myMsge

End Sub


Regards,

OssieMac

" wrote:

I am trying to run a macro upon opening a Workbook that will display a
short message based on the time of day.
If the current time is less than the time i.e. in mytime then it will
dipslay a "Good Morning Message in a box." Which is accomplished
when it goes to the Good Morning code.

My problem is that i cannot the the VBA to work and display (Good
Morning, Good Afternoon, or Good Night).

I cannot get it to work for all time variables. It seems that the
time is only read by its value such as if the current time its 11:15
PM my first If statement sees it as true. How do i get it to read as
11:15 PM or 23:15:00 (military time)?

Any help?



mytime1 = TimeValue("11:59:00")
mytime2 = TimeValue("20:59:00")
mytime3 = TimeValue("23:59:00")
Sheets("Estimate").Select

If mytime1 Range("mytime") Then
GoTo Good_Morning
Else
If mytime2 Range("mytime") Then
GoTo Good_AFTERNOON
Else
If mytime3 Range("mytime") Then
GoTo Good_Evening
End if

RG