Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 989
Default Workshet onchange

I am using EXCEL 97.

I have used the following:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

But I am getting a debug prompt regularly.

I want monitor changes to only a range of B9:AC13.

Is there a way to set it so that it only monitors this part and if so can
anyone assist me please?


--
Mark
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 4,624
Default Workshet onchange

one way:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("B9:AC13")) Is Nothing Then
'Do whatever
End If
End Sub

Note that Target returns the Selection, so if you have multiple cells
selected, you need to deal with that. For instance, if B1:J10 is
selected, the code above will perform your code steps. One way to
mitigate this would be to restrict the macro to fire only when one cell
is selected:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Count 1 Then Exit Sub
If Not Intersect(Target, Range("B9:AC13")) Is Nothing Then
'Do whatever
End If
End Sub

A different way would be to restrict Target to the desired cells:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Set Target = Intersect(Target, Range("B9:AC13"))
If Not Target Is Nothing Then
'Do whatever
End If
End Sub

note that in this case, there's no guarantee that the cell changed is
within your desired range.


In article ,
"Mark" wrote:

I am using EXCEL 97.

I have used the following:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

But I am getting a debug prompt regularly.

I want monitor changes to only a range of B9:AC13.

Is there a way to set it so that it only monitors this part and if so can
anyone assist me please?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Workshet onchange

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("B9:AC13")) Is Nothing Then
With Target
'do something
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

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"Mark" wrote in message
...
I am using EXCEL 97.

I have used the following:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)

But I am getting a debug prompt regularly.

I want monitor changes to only a range of B9:AC13.

Is there a way to set it so that it only monitors this part and if so can
anyone assist me please?


--
Mark



Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Automatic extend row in workshet. Rao Ratan Singh New Users to Excel 0 February 4th 06 06:05 PM
Automatic extend row in workshet. Gary''s Student New Users to Excel 0 February 4th 06 02:37 PM
OnChange Event for a Cell Michael Kintner Excel Programming 3 January 5th 04 08:29 PM
OnChange - argh! How do I get this to work please? mightyginger Excel Programming 1 December 9th 03 12:35 PM
Inserting time stamp onchange of any cell Mitchell Carey Excel Programming 1 August 8th 03 08:09 AM


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

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"