Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 2
Default Using If Statements and a Time Variable

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

  #2   Report Post  
Posted to microsoft.public.excel.misc
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


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

My apologies. The third case statement had the wrong starting time. Should
have been:-

Case TimeValue("18:00:00") To TimeValue("23:59:59")
myMsge = "Good Evening"
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


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

Hopefully third time lucky. I had the time of second case statement
overlapping the third case. Anyway Ihave now included a line where you can
enter dummy values for the time to test it and when finished testing, delete
the line.

Sub Time_Test()
Dim myTime As Date 'Note time is actually a fraction of a date
Dim myMsge As String

myTime = Now - Date 'Now returns date and time. Date returns date only.

'Can uncomment and use following line for testing then delete it
'myTime = TimeValue("23:59:59")

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

MsgBox myMsge

End Sub

regards,

OssieMac


  #5   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 4,624
Default Using If Statements and a Time Variable

Another way:

Public Sub Time_Test2()
Select Case Time
Case Is < #12:00:00 PM#
MsgBox "Good Morning"
Case Is < #6:00:00 PM#
MsgBox "Good Afternooon"
Case Else
MsgBox "Good Evening"
End Select
End Sub


In article ,
OssieMac wrote:

Hopefully third time lucky. I had the time of second case statement
overlapping the third case. Anyway Ihave now included a line where you can
enter dummy values for the time to test it and when finished testing, delete
the line.

Sub Time_Test()
Dim myTime As Date 'Note time is actually a fraction of a date
Dim myMsge As String

myTime = Now - Date 'Now returns date and time. Date returns date only.

'Can uncomment and use following line for testing then delete it
'myTime = TimeValue("23:59:59")

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

MsgBox myMsge

End Sub

regards,

OssieMac



  #6   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 2
Default Using If Statements and a Time Variable

On Oct 30, 11:27 pm, OssieMac
wrote:
Hopefully third time lucky. I had the time of second case statement
overlapping the third case. Anyway Ihave now included a line where you can
enter dummy values for the time to test it and when finished testing, delete
the line.

Sub Time_Test()
Dim myTime As Date 'Note time is actually a fraction of a date
Dim myMsge As String

myTime = Now - Date 'Now returns date and time. Date returns date only.

'Can uncomment and use following line for testing then delete it
'myTime = TimeValue("23:59:59")

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

MsgBox myMsge

End Sub

regards,

OssieMac


Hi OssieMac

Thanks so much.
That worked great.
I was not familiar with the Select Case Statement.
I Appreciate your help.

sincerely,
RichG

  #7   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 2
Default Using If Statements and a Time Variable

On Oct 31, 1:25 am, JE McGimpsey wrote:
Another way:

Public Sub Time_Test2()
Select Case Time
Case Is < #12:00:00 PM#
MsgBox "Good Morning"
Case Is < #6:00:00 PM#
MsgBox "Good Afternooon"
Case Else
MsgBox "Good Evening"
End Select
End Sub

In article ,



OssieMac wrote:
Hopefully third time lucky. I had the time of second case statement
overlapping the third case. Anyway Ihave now included a line where you can
enter dummy values for the time to test it and when finished testing, delete
the line.


Sub Time_Test()
Dim myTime As Date 'Note time is actually a fraction of a date
Dim myMsge As String


myTime = Now - Date 'Now returns date and time. Date returns date only.


'Can uncomment and use following line for testing then delete it
'myTime = TimeValue("23:59:59")


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


MsgBox myMsge


End Sub


regards,


OssieMac- Hide quoted text -


- Show quoted text -


That works too. Thanks alot for your help. Again, I was not aware of
the "Select Case" statement, but will definitely use it from now on.

Sincerely,
RichG

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
IF Statements and Time [email protected] Excel Worksheet Functions 4 May 6th 06 06:44 AM
Variable SQL Statements pulling from a cell in Excel Duke Carey Excel Worksheet Functions 2 March 23rd 06 09:35 AM
Variable SQL Statements pulling from a cell in Excel Duke Carey Links and Linking in Excel 2 March 23rd 06 09:35 AM
Variable SQL Statements pulling from a cell in Excel Duke Carey Excel Worksheet Functions 0 March 22nd 06 08:31 PM
Variable SQL Statements pulling from a cell in Excel Duke Carey Links and Linking in Excel 0 March 22nd 06 08:31 PM


All times are GMT +1. The time now is 11:40 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"