ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Help please with coding a macro (https://www.excelbanter.com/excel-programming/336501-help-please-coding-macro.html)

useR

Help please with coding a macro
 
Need help creating a macro to apply this set of 5 conditional format criteria
to a data range in my report? Font is Arial regular, 11 point.

IF current cell value is not equal to ="N/A", THEN current cell font is black.
IF current cell value is </= 4.004, THEN fill current cell color bright
green, font is black.
IF current cell value is between 4.005 AND 4.099, THEN fill current cell
color yellow, font is black.
IF value in cell one column Left same row is /= 4.005, AND current cell
value is /= 4.005, THEN fill current cell color red, font is bold white.
IF current cell value is /= 5.0, THEN fill current cell color red, font is
bold white.

Using MS Office Excel 2003, MS Windows XP Pro 2002.

Thanks!

Bob Phillips[_6_]

Help please with coding a macro
 
Adjust the rng Constant to suit

Option Explicit

'--------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'--------------------------------------------------------------
Const rng As String = "H1:H10"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(rng)) Is Nothing Then
With Target
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexNone
Select Case True
Case .Value = "N/A":
Case .Value < 4.004:
.Interior.ColorIndex = 4
Case .Offset(0, -1).Value 4.005:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
Case .Value < 4.099:
.Interior.ColorIndex = 6
Case Else:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
End Select
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub


'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.


--

HTH

RP
(remove nothere from the email address if mailing direct)


"useR" wrote in message
...
Need help creating a macro to apply this set of 5 conditional format

criteria
to a data range in my report? Font is Arial regular, 11 point.

IF current cell value is not equal to ="N/A", THEN current cell font is

black.
IF current cell value is </= 4.004, THEN fill current cell color bright
green, font is black.
IF current cell value is between 4.005 AND 4.099, THEN fill current cell
color yellow, font is black.
IF value in cell one column Left same row is /= 4.005, AND current cell
value is /= 4.005, THEN fill current cell color red, font is bold white.
IF current cell value is /= 5.0, THEN fill current cell color red, font

is
bold white.

Using MS Office Excel 2003, MS Windows XP Pro 2002.

Thanks!




useR

Help please with coding a macro
 
Hi Bob, thanks!

However, instead of a Change procedure, could you please make this macro
update the formatting as a result of sheet re-calculation?

Reason is that I'm "mirroring" this data into my Report worksheet from a
subset on a different worksheet in the same workbook, so I'm not actually
typing into this report. Here's the formula:
=IF(HLOOKUP(F$27,'Manual Input'!$108:$156,6,FALSE)<0,HLOOKUP(F$27,'Manual
Input'!$108:$156,6,FALSE),NA())


"Bob Phillips" wrote:

Adjust the rng Constant to suit

Option Explicit

'--------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'--------------------------------------------------------------
Const rng As String = "H1:H10"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(rng)) Is Nothing Then
With Target
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexNone
Select Case True
Case .Value = "N/A":
Case .Value < 4.004:
.Interior.ColorIndex = 4
Case .Offset(0, -1).Value 4.005:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
Case .Value < 4.099:
.Interior.ColorIndex = 6
Case Else:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
End Select
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub


'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.


--

HTH

RP
(remove nothere from the email address if mailing direct)


"useR" wrote in message
...
Need help creating a macro to apply this set of 5 conditional format

criteria
to a data range in my report? Font is Arial regular, 11 point.

IF current cell value is not equal to ="N/A", THEN current cell font is

black.
IF current cell value is </= 4.004, THEN fill current cell color bright
green, font is black.
IF current cell value is between 4.005 AND 4.099, THEN fill current cell
color yellow, font is black.
IF value in cell one column Left same row is /= 4.005, AND current cell
value is /= 4.005, THEN fill current cell color red, font is bold white.
IF current cell value is /= 5.0, THEN fill current cell color red, font

is
bold white.

Using MS Office Excel 2003, MS Windows XP Pro 2002.

Thanks!





Bob Phillips[_6_]

Help please with coding a macro
 
Does this do what you want?

Private Sub Worksheet_Calculate()
Const rng As String = "H1:H10"
Dim cell As Range

On Error GoTo ws_exit:
Application.EnableEvents = False
For Each cell In Range(rng)
With cell
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexNone
Select Case True
Case .Value = "N/A":
Case .Value < 4.004:
.Interior.ColorIndex = 4
Case .Offset(0, -1).Value 4.005:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
Case .Value < 4.099:
.Interior.ColorIndex = 6
Case Else:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
End Select
End With
Next

ws_exit:
Application.EnableEvents = True
End Sub

--

HTH

RP
(remove nothere from the email address if mailing direct)


"useR" wrote in message
...
Hi Bob, thanks!

However, instead of a Change procedure, could you please make this macro
update the formatting as a result of sheet re-calculation?

Reason is that I'm "mirroring" this data into my Report worksheet from a
subset on a different worksheet in the same workbook, so I'm not actually
typing into this report. Here's the formula:
=IF(HLOOKUP(F$27,'Manual Input'!$108:$156,6,FALSE)<0,HLOOKUP(F$27,'Manual
Input'!$108:$156,6,FALSE),NA())


"Bob Phillips" wrote:

Adjust the rng Constant to suit

Option Explicit

'--------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
'--------------------------------------------------------------
Const rng As String = "H1:H10"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(rng)) Is Nothing Then
With Target
.Font.ColorIndex = xlColorIndexAutomatic
.Interior.ColorIndex = xlColorIndexNone
Select Case True
Case .Value = "N/A":
Case .Value < 4.004:
.Interior.ColorIndex = 4
Case .Offset(0, -1).Value 4.005:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
Case .Value < 4.099:
.Interior.ColorIndex = 6
Case Else:
.Font.ColorIndex = 2
.Font.Bold = True
.Interior.ColorIndex = 3
End Select
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub


'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.


--

HTH

RP
(remove nothere from the email address if mailing direct)


"useR" wrote in message
...
Need help creating a macro to apply this set of 5 conditional format

criteria
to a data range in my report? Font is Arial regular, 11 point.

IF current cell value is not equal to ="N/A", THEN current cell font

is
black.
IF current cell value is </= 4.004, THEN fill current cell color

bright
green, font is black.
IF current cell value is between 4.005 AND 4.099, THEN fill current

cell
color yellow, font is black.
IF value in cell one column Left same row is /= 4.005, AND current

cell
value is /= 4.005, THEN fill current cell color red, font is bold

white.
IF current cell value is /= 5.0, THEN fill current cell color red,

font
is
bold white.

Using MS Office Excel 2003, MS Windows XP Pro 2002.

Thanks!








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

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