+ Reply to Thread
Results 1 to 5 of 5

Auto-Run

  1. #1
    AP
    Guest

    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!



  2. #2
    Valued Forum Contributor mudraker's Avatar
    Join Date
    11-10-2003
    Location
    Melbourne, Australia
    Posts
    3,983
    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

  3. #3
    Norman Jones
    Guest

    Re: 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" <[email protected]> wrote in message
    news:[email protected]...
    >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!
    >




  4. #4
    AP
    Guest

    Re: Auto-Run

    Tq norman



  5. #5
    Norman Jones
    Guest

    Re: 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" <[email protected]> wrote in message
    news:[email protected]...
    > Tq norman
    >




+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1