ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   comparing times (https://www.excelbanter.com/excel-programming/413462-comparing-times.html)

bst

comparing times
 
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

Charlie

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


bst

comparing times
 
Doh! You are right. I don't know why i was fighting against using an OR
in my head.

thanks
bst

?B?Q2hhcmxpZQ==?= wrote in
:

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




All times are GMT +1. The time now is 06:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com