Thread: comparing times
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Charlie Charlie is offline
external usenet poster
 
Posts: 703
Default comparing times

Change "And" to "Or" (and decide what to do if the time is EXACTLY 5am or
5pm, i.e. choose to use "<=", "=" in one of your two functions. Look at
your logic carefully.)

Function shouldNotSigBool(time As Date) As Boolean
Const am As Date = #5:00:00 AM#
Const pm As Date = #5:00:00 PM#
If (time < am Or time pm) Then
shouldNotSigBool = True
Else
shouldNotSigBool = False
End If
End Function



"bst" wrote:

i would like to flag certain cells based on the criteria below,
if the time in column A is between 5AM and 5PM and the word in column B is
False, i would like the cell in B marked red.
if the time in column A is between 5PM and 5AM and the word in column B is
True i would like the cell in B marked as red.

here is what i have so far:
If (sig = "TRUE" And shouldNotSigBool(time)) Then
.Cells(rowCtr, colSig).Interior.ColorIndex = 3 'after hours, no
sig needed
End If
If (sig = "FALSE" And shouldSigBool(time)) Then
.Cells(rowCtr, colSig).Interior.ColorIndex = 3 'normal hours,
sig needed
End If

and the functions:
Function shouldSigBool(time As Date) As Boolean
Const am As Date = #5:00:00 AM#
Const pm As Date = #5:00:00 PM#
If (time am And time < pm) Then
shouldSigBool = True
Else
shouldSigBool = False
End If
End Function

Function shouldNotSigBool(time As Date) As Boolean
Const am As Date = #5:00:00 AM#
Const pm As Date = #5:00:00 PM#
If (time < am And time pm) Then
shouldNotSigBool = True
Else
shouldNotSigBool = False
End If
End Function

from my sample data it looks as if the first conditional is completing,
however the second is not. can anyone spot a flaw in the logic? or is there
a beter way to do this?(i dont think an OR will work). unfortunatley i dont
know anyone else with any programming experience to bug with all my issues,
and it is terribly difficult to proofread my own work.

tia
bst