brian sullivan
Member
Greetings Chandoo community,
I'm reaching out; in order to learn the how for developing code that fills cells with color(s). Below, is the VBA Module code for my Public Function Worksheet Function Performance_Message & Worksheet Change Events too.
I have listed the (Module) arguments, declarations, formulas, & Case statement for determining my color fill methodology. Also, I've included notes for what my arguments/variables represent in the code relating to the worksheet.
Relating to filling a cell with a cell color; I'm using cellcolor = blue along with other examples. However, I'm not up to date on the proper coding process .
Thanks.....
Data Notes (Performance Worksheet) MODULE
=Performance_Message(D43,$D$42,E43,$E$42)
VBA variables names in Function Worksheet /Arguments
D43 = Non Weighted Worksheet Report average (Worksheet) / Non PreferredAverage (VBA) single data type
$D$42 = Non Weighted Report Name column Header / NonPreferredAverageName (VBA string variable type)
E43 = Weighted Worksheet Report Average (Worksheet) /PreferredAverage (Single)
$E$E42 = Weighted Worksheet Report averageName (Worksheet)/PreferredAverageName VBA String
Outputp As String Variable (VBA Code) represents returned public function text string output type
=Performance_Message(E43,$E$42,G43,$G$42) same setup here too. Formula public function carries over
VBA MODULE CODE
Worksheet Events
I'm reaching out; in order to learn the how for developing code that fills cells with color(s). Below, is the VBA Module code for my Public Function Worksheet Function Performance_Message & Worksheet Change Events too.
I have listed the (Module) arguments, declarations, formulas, & Case statement for determining my color fill methodology. Also, I've included notes for what my arguments/variables represent in the code relating to the worksheet.
Relating to filling a cell with a cell color; I'm using cellcolor = blue along with other examples. However, I'm not up to date on the proper coding process .
Thanks.....
Data Notes (Performance Worksheet) MODULE
=Performance_Message(D43,$D$42,E43,$E$42)
VBA variables names in Function Worksheet /Arguments
D43 = Non Weighted Worksheet Report average (Worksheet) / Non PreferredAverage (VBA) single data type
$D$42 = Non Weighted Report Name column Header / NonPreferredAverageName (VBA string variable type)
E43 = Weighted Worksheet Report Average (Worksheet) /PreferredAverage (Single)
$E$E42 = Weighted Worksheet Report averageName (Worksheet)/PreferredAverageName VBA String
Outputp As String Variable (VBA Code) represents returned public function text string output type
=Performance_Message(E43,$E$42,G43,$G$42) same setup here too. Formula public function carries over
VBA MODULE CODE
Code:
Public Function Performance_Message(NonPreferredAvg As Single _
, NonPreferredAvgname As String _
, PreferredAvg As Single _
, PreferredAvgname As String _
, Optional Outputtype As String _
) As Variant
Dim performancemessage As String
Dim averagedifference As Single
Dim stravgdif As String
Dim cellcolor As String
averagedifference = Abs(NonPreferredAvg - PreferredAvg)
stravgdif = FormatPercent(averagedifference, 2)
Select Case PreferredAvg
Case Is < NonPreferredAvg
performancemessage = PreferredAvgname & " Is " & stravgdif & " Less Than " & NonPreferredAvgname
cellcolor = "green"
Case Is = NonPreferredAvg
performancemessage = PreferredAvgname & " Equals " & NonPreferredAvgname
cellcolor = "yellow"
Case Is > NonPreferredAvg
performancemessage = PreferredAvgname & " Is " & stravgdif & " Greater Than " & NonPreferredAvgname
cellcolor = "blue"
Case Else
performancemessage = "Something Bad Happened"
End Select
If Outputtype = "color" Then
Performance_Message = cellcolor
Else
Performance_Message = performancemessage
End If
End Function
Worksheet Events
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
SetPerformancecolor (Target)
End Sub
Private Sub SetPerformancecolor(Target As Range)
End Sub
Attachments
Last edited by a moderator: