ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Setting a cell format based on a function operation (https://www.excelbanter.com/excel-programming/402543-setting-cell-format-based-function-operation.html)

scott56hannah

Setting a cell format based on a function operation
 
Hi,

I am trying to setup a basic invoice sheet and I have started a function
that will
calculate the number of days owing based on the current date and the date of
the invoice.....it sets a value as per below for a cell in the invoice row

Function strDebtorDays(intDebtorDays As Integer) As String
'This function will return a string value showing the number of days that
the debt has been owed

Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Case 8 To 14
strDebtorDays = "< 14 days"
Case 15 To 30
strDebtorDays = "< 30 days"
Case 31 To 60
strDebtorDays = "< 60 days"
Case 61 To 90
strDebtorDays = "< 90 days"
Case Is 90
strDebtorDays = " 90 days"
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function

I now want to color the interior of the cell based on one of those values.
But because it is function I cannot work out how to update the cell format ?

Any help appreciated

Thanks
Scott

JLGWhiz

Setting a cell format based on a function operation
 
You would need a cell reference to add the color. I don't know how your
code is written to identify the cell where the value goes, i.e. as a
variable, or a specified cells or A1 reference. If you are using select or
activate to get to the cell, then
ActiveCell.Interior.ColorIndex = ? would work in the case statement.
Otherwise, use the actual range/cells reference.

"scott56hannah" wrote:

Hi,

I am trying to setup a basic invoice sheet and I have started a function
that will
calculate the number of days owing based on the current date and the date of
the invoice.....it sets a value as per below for a cell in the invoice row

Function strDebtorDays(intDebtorDays As Integer) As String
'This function will return a string value showing the number of days that
the debt has been owed

Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Case 8 To 14
strDebtorDays = "< 14 days"
Case 15 To 30
strDebtorDays = "< 30 days"
Case 31 To 60
strDebtorDays = "< 60 days"
Case 61 To 90
strDebtorDays = "< 90 days"
Case Is 90
strDebtorDays = " 90 days"
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function

I now want to color the interior of the cell based on one of those values.
But because it is function I cannot work out how to update the cell format ?

Any help appreciated

Thanks
Scott


scott56hannah

Setting a cell format based on a function operation
 
Hi,

I currently have this function setup on a cell in the worksheet to populate
the string (eg "7 days") based on other values in the row.....so when a
value changes the cell value is recalculated. At that point I want the format
changed based on the value.....so the cell is not really active when the
function is recalculated....

Is there anyway around this so that I can still format the cell depending on
that value. I also want to be able to format the cell range with more than 3
types of fill color so the conditional formatting will not work

Thanks
Scott

"JLGWhiz" wrote:

You would need a cell reference to add the color. I don't know how your
code is written to identify the cell where the value goes, i.e. as a
variable, or a specified cells or A1 reference. If you are using select or
activate to get to the cell, then
ActiveCell.Interior.ColorIndex = ? would work in the case statement.
Otherwise, use the actual range/cells reference.

"scott56hannah" wrote:

Hi,

I am trying to setup a basic invoice sheet and I have started a function
that will
calculate the number of days owing based on the current date and the date of
the invoice.....it sets a value as per below for a cell in the invoice row

Function strDebtorDays(intDebtorDays As Integer) As String
'This function will return a string value showing the number of days that
the debt has been owed

Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Case 8 To 14
strDebtorDays = "< 14 days"
Case 15 To 30
strDebtorDays = "< 30 days"
Case 31 To 60
strDebtorDays = "< 60 days"
Case 61 To 90
strDebtorDays = "< 90 days"
Case Is 90
strDebtorDays = " 90 days"
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function

I now want to color the interior of the cell based on one of those values.
But because it is function I cannot work out how to update the cell format ?

Any help appreciated

Thanks
Scott


JLGWhiz

Setting a cell format based on a function operation
 
Then you should be able to use the specific cell reference in your case
statement to set the color like so:

'Assume Range{"$C$5") is the cell that strDebtorDays checks.
'Replace the ? with a number 1 - 56.
Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Range("$C$5").Interior.ColorIndex = ?
Case 8 To 14
strDebtorDays = "< 14 days"
Range("$C$5").Interior.ColorIndex = ?
Case 15 To 30
strDebtorDays = "< 30 days"
Range("$C$5").Interior.ColorIndex = ?
Case 31 To 60
strDebtorDays = "< 60 days"
Range("$C$5").Interior.ColorIndex = ?
Case 61 To 90
strDebtorDays = "< 90 days"
Range("$C$5").Interior.ColorIndex = ?
Case Is 90
strDebtorDays = " 90 days"
Range("$C$5").Interior.ColorIndex = ?
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function


"scott56hannah" wrote:

Hi,

I currently have this function setup on a cell in the worksheet to populate
the string (eg "7 days") based on other values in the row.....so when a
value changes the cell value is recalculated. At that point I want the format
changed based on the value.....so the cell is not really active when the
function is recalculated....

Is there anyway around this so that I can still format the cell depending on
that value. I also want to be able to format the cell range with more than 3
types of fill color so the conditional formatting will not work

Thanks
Scott

"JLGWhiz" wrote:

You would need a cell reference to add the color. I don't know how your
code is written to identify the cell where the value goes, i.e. as a
variable, or a specified cells or A1 reference. If you are using select or
activate to get to the cell, then
ActiveCell.Interior.ColorIndex = ? would work in the case statement.
Otherwise, use the actual range/cells reference.

"scott56hannah" wrote:

Hi,

I am trying to setup a basic invoice sheet and I have started a function
that will
calculate the number of days owing based on the current date and the date of
the invoice.....it sets a value as per below for a cell in the invoice row

Function strDebtorDays(intDebtorDays As Integer) As String
'This function will return a string value showing the number of days that
the debt has been owed

Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Case 8 To 14
strDebtorDays = "< 14 days"
Case 15 To 30
strDebtorDays = "< 30 days"
Case 31 To 60
strDebtorDays = "< 60 days"
Case 61 To 90
strDebtorDays = "< 90 days"
Case Is 90
strDebtorDays = " 90 days"
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function

I now want to color the interior of the cell based on one of those values.
But because it is function I cannot work out how to update the cell format ?

Any help appreciated

Thanks
Scott


scott56hannah

Setting a cell format based on a function operation
 
Unfortunately I need to make it repeatable across each row that the detail is
in. But I think I can do that by passing in the cell reference to the
function call and then using that to perform the format setting...

Thanks for your help....

"JLGWhiz" wrote:

Then you should be able to use the specific cell reference in your case
statement to set the color like so:

'Assume Range{"$C$5") is the cell that strDebtorDays checks.
'Replace the ? with a number 1 - 56.
Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Range("$C$5").Interior.ColorIndex = ?
Case 8 To 14
strDebtorDays = "< 14 days"
Range("$C$5").Interior.ColorIndex = ?
Case 15 To 30
strDebtorDays = "< 30 days"
Range("$C$5").Interior.ColorIndex = ?
Case 31 To 60
strDebtorDays = "< 60 days"
Range("$C$5").Interior.ColorIndex = ?
Case 61 To 90
strDebtorDays = "< 90 days"
Range("$C$5").Interior.ColorIndex = ?
Case Is 90
strDebtorDays = " 90 days"
Range("$C$5").Interior.ColorIndex = ?
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function


"scott56hannah" wrote:

Hi,

I currently have this function setup on a cell in the worksheet to populate
the string (eg "7 days") based on other values in the row.....so when a
value changes the cell value is recalculated. At that point I want the format
changed based on the value.....so the cell is not really active when the
function is recalculated....

Is there anyway around this so that I can still format the cell depending on
that value. I also want to be able to format the cell range with more than 3
types of fill color so the conditional formatting will not work

Thanks
Scott

"JLGWhiz" wrote:

You would need a cell reference to add the color. I don't know how your
code is written to identify the cell where the value goes, i.e. as a
variable, or a specified cells or A1 reference. If you are using select or
activate to get to the cell, then
ActiveCell.Interior.ColorIndex = ? would work in the case statement.
Otherwise, use the actual range/cells reference.

"scott56hannah" wrote:

Hi,

I am trying to setup a basic invoice sheet and I have started a function
that will
calculate the number of days owing based on the current date and the date of
the invoice.....it sets a value as per below for a cell in the invoice row

Function strDebtorDays(intDebtorDays As Integer) As String
'This function will return a string value showing the number of days that
the debt has been owed

Select Case intDebtorDays

Case 0 To 7
strDebtorDays = "< 7 days"
Case 8 To 14
strDebtorDays = "< 14 days"
Case 15 To 30
strDebtorDays = "< 30 days"
Case 31 To 60
strDebtorDays = "< 60 days"
Case 61 To 90
strDebtorDays = "< 90 days"
Case Is 90
strDebtorDays = " 90 days"
Case Else
strDebtorDays = "Not Valid Range"

End Select

End Function

I now want to color the interior of the cell based on one of those values.
But because it is function I cannot work out how to update the cell format ?

Any help appreciated

Thanks
Scott



All times are GMT +1. The time now is 10:16 AM.

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