View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
K Dales[_2_] K Dales[_2_] is offline
external usenet poster
 
Posts: 1,163
Default Declaration name

The answer depends on when you want this to occur (what event should trigger
it?). It appears you are using the activecell value to trigger the format
changes, so i am assuming you want this to occur after the user changes the
value in the active cell. That would be the Worksheet_Change event, so the
Sub declaration would be:

Public Sub Worksheet_Change(ByVal Target as Range)

You would need to put the code in the proper code module for that worksheet
(so select the sheet from the list in the Project Explorer inside the VBA
editor before entering it).

Target will be the active cell, so to have it run only for the columns you
mentioned you can put it inside an IF statement (Intersect checks the overlap
of the two ranges - if there is no overlap it is Nothing):

Public Sub Worksheet_Change(ByVal Target as Range)
' Dim statements...
If Not(Intersect(Target, Range("Y:AB")) Is Nothing) Then
' Your code here
End If
End Sub

"Robert Hargreaves" wrote:

Hi everyone I'm a bit puzzled over where to put some code to make it work.

I have got a public sub in my excel file. I know how you should call this
in code but I do not know if this is the correct place for it.

I only want the contents of the code to work on one sheet and I only would
like the code to apply to columns Y, Z, AA, AB

I dont know what the declaration name should be like onactivate or onchange.

can someone help please. Patrick Malloy, I couldn't find your code you
recommeded before.

Thankyou for your help.
Rob

Here is a copy of the code in the sub

Public Sub ConditionalFill()

Dim val As Long
Dim nr1 As Long
Dim nr2 As Long
Dim nr3 As Long
Dim nr4 As Long
Dim nr5 As Long
Dim nr6 As Long
Dim nr7 As Long
Dim nr8 As Long

val = ActiveCell.Value
nr1 = Range(ActiveWorkbook.Names("NaburnMLSSTrig1a")).Va lue
nr2 = Range(ActiveWorkbook.Names("NaburnMLSSTrig1b")).Va lue
nr3 = Range(ActiveWorkbook.Names("NaburnMLSSTrig2a")).Va lue
nr4 = Range(ActiveWorkbook.Names("NaburnMLSSTrig2b")).Va lue
nr5 = Range(ActiveWorkbook.Names("NaburnMLSSTrig3a")).Va lue
nr6 = Range(ActiveWorkbook.Names("NaburnMLSSTrig3b")).Va lue
nr7 = Range(ActiveWorkbook.Names("NaburnMLSSTrig4a")).Va lue
nr8 = Range(ActiveWorkbook.Names("NaburnMLSSTrig4b")).Va lue

Select Case True
Case val nr1 And val < nr2
ActiveCell.Interior.ColorIndex = 45
Case val nr3 And val < nr4
ActiveCell.Interior.ColorIndex = 3
Case val nr5 And val < nr6
ActiveCell.Interior.ColorIndex = 45
Case val nr7 And val < nr8
ActiveCell.Interior.ColorIndex = 3
Case Else
MsgBox ("Non Apply"), vbInformation
ActiveCell.Interior.ColorIndex = xlColorIndexNone
End Select

End Sub