OnChange function only when a certain cell changes

  • Thread starter Thread starter PCLIVE
  • Start date Start date
P

PCLIVE

Can I do an OnChange function for just one cell? For example, anytime
A1 changes, I'd like to run some code. I don't really want to use the code
on the whole sheet if I don't have to. Can this be done?

Thanks,
Paul
 
Paul,

Forget about OnChange. Instead, use the Worksheet_Change event
procedure (right click on the appropriate sheet tab and choose
View Code). Something like

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
' do something
End If
End Sub



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
There is no built-in event for a cell change, but the usual way to do what
you want is to test the Target range to see if it includes your cell, e.g:

Sub Worksheet_Change(ByVal Target as Range)
If Not(Intersect(Target, Range("A1")) Is Nothing) Then
' Your code goes here
End If
End Sub

The event procedure runs, but the actual code is skipped if A1 did not change.
 
Great idea Chip!
Works great!

Thank you,
Paul

Chip Pearson said:
Paul,

Forget about OnChange. Instead, use the Worksheet_Change event procedure
(right click on the appropriate sheet tab and choose View Code). Something
like

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
' do something
End If
End Sub



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 
Or

if not intersect (target, range("$A$1")) is nothing then ....


it works if you are intereseted in area larger than single cell i.e.

if not intersect (target, range("$A:$A")) is nothing then ....

entire A column.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top