View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
rockhammer rockhammer is offline
external usenet poster
 
Posts: 57
Default checking if user selected cells are within a specified range o

Hi Folks, thanks a lot for all your prompt input. I learnt something new from
each of your replies.

In the end, I settled on the following:

++++++++++++++++++++++
Dim iArea As Range
Dim isOutsideCols As Boolean
Dim isOutsideRows As Boolean

isOutsideCols = False
isOutsideRows = False
For Each iArea In Selection.Areas
Select Case True
Case iArea.Row < row1st
isOutsideRows = True
Case iArea.Rows(iArea.Rows.Count).Row rowLast
isOutsideRows = True
Case iArea.Column < colUpdated
isOutsideCols = True
Case iArea.Columns(iArea.Columns.Count).Column < colUpdated
isOutsideCols = True
End Select
If isOutsideCols Or isOutsideRows Then Exit For
Next

If isOutsideCols Then
MsgBox "Please select cell(s) within the 'Updated' column."
ElseIf isOutsideRows Then
MsgBox "Please select cell(s) among the list of stocks."
Else
Selection.Value = Now
End If
++++++++++++++++++++++

"Jim Cone" wrote:


Sub WhereAreWe()
Dim rngAll As Excel.Range
Dim rngArea As Excel.Range
Dim blnOutside As Boolean

' Establish the boundaries...
Const rTop As Long = 10
Const rBott As Long = 100
Const cLeft As Long = 5
Const cRight As Long = 15
Set rngAll = Selection

For Each rngArea In rngAll.Areas
Select Case True
Case rngArea.Row < rTop
blnOutside = True
Case rngArea.Rows(rngArea.Rows.Count).Row rBott
blnOutside = True
Case rngArea.Column < cLeft
blnOutside = True
Case rngArea.Columns(rngArea.Columns.Count).Column cRight
blnOutside = True
End Select
If blnOutside Then
MsgBox "Oops"
Exit For
End If
Next
Set rngArea = Nothing
Set rngAll = Nothing
End Sub
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"rockhammer"

wrote in message
I am expecting the user to select 1 or more not necessarily contiguous cells
and then operate on those cells. But first, I want to check that all selected
cells are within a specified cell range, say, $a$11:$a$200. Two questions:

1) how do I loop thru the user selected cells?
2) is there a way to do that range check mentioned above without looping
thru the selected cells?
Thanks a lot.