ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   OnChange function only when a certain cell changes (https://www.excelbanter.com/excel-programming/348778-onchange-function-only-when-certain-cell-changes.html)

PCLIVE

OnChange function only when a certain cell changes
 
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



Chip Pearson

OnChange function only when a certain cell changes
 
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


"PCLIVE" wrote in message
...
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




K Dales[_2_]

OnChange function only when a certain cell changes
 
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.
--
- K Dales


"PCLIVE" wrote:

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




PCLIVE

OnChange function only when a certain cell changes
 
Great idea Chip!
Works great!

Thank you,
Paul

"Chip Pearson" wrote in message
...
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


"PCLIVE" wrote in message
...
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






Chip Pearson

OnChange function only when a certain cell changes
 
I'm glad it works. For more information about events, see
http://www.cpearson.com/excel/events.htm .


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


"PCLIVE" wrote in message
...
Great idea Chip!
Works great!

Thank you,
Paul

"Chip Pearson" wrote in message
...
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


"PCLIVE" wrote in message
...
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








Kris

OnChange function only when a certain cell changes
 
PCLIVE wrote:

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



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.


All times are GMT +1. The time now is 02:59 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com