ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Auto-Run (https://www.excelbanter.com/excel-programming/355932-auto-run.html)

AP[_5_]

Auto-Run
 
I want Excel to run the macro "Update" automatically whenever the value in
the cell named "Target" < 0. Can Excel do this without me having to run the
macro manually?

Thanks!



mudraker[_345_]

Auto-Run
 

Yes it is possible

One way

On the module sheet that is for the speadsheet you want to trigger the
macro you need a change event macro

Private Sub Worksheet_Change(ByVal Target As Range)
'add target.address testing if required
If Target.Value < 0 Then
Application.EnableEvents = False
Call MyMacro
Application.EnableEvents = True
End If
End Sub


--
mudraker
------------------------------------------------------------------------
mudraker's Profile: http://www.excelforum.com/member.php...fo&userid=2473
View this thread: http://www.excelforum.com/showthread...hreadid=522046


Norman Jones

Auto-Run
 
Hi AP,

Assuming that your intention is that the macro should only be triggered when
the cell of interest changes from zero to another value, try:

'=============
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim currCell As Range, currRng As Range
Dim oldVal As Variant
Dim newVal As Variant

Set currCell = ActiveCell
Set currRng = Selection

Set rng = Intersect(Range("myTarget"), Target)

If Not rng Is Nothing Then
On Error GoTo XIT
Application.EnableEvents = False
newVal = rng.Value
Application.Undo
oldVal = rng.Value
Target.Value = newVal
Target.Select
currCell.Activate

If oldVal = 0 And newVal < 0 Then
Call Update
End If

End If

XIT:
Application.EnableEvents = True
End Sub
'<<=============

This is worksheet event code and should be pasted into the worksheets's code
module (not a standard module and not the workbook's ThisWorkbook module):

Right-click the worksheet's tab
Select 'View Code' from the menu and paste the code.
Alt-F11 to return to Excel.

As Target is a reserved word, and to avoid possible confusion, I have
changed the named cell to myTarget


---
Regards,
Norman



"AP" wrote in message
...
I want Excel to run the macro "Update" automatically whenever the value in
the cell named "Target" < 0. Can Excel do this without me having to run
the macro manually?

Thanks!




AP[_5_]

Auto-Run
 
Tq norman



Norman Jones

Auto-Run
 
Hi AP,

The suggested code can be simplied.

Change:

Dim currCell As Range, currRng As Range


to

Dim currCell As Range

and delete:

Set currRng = Selection

---
Regards,
Norman



"AP" wrote in message
...
Tq norman





All times are GMT +1. The time now is 08:51 PM.

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