Is it possible to use the contents of a cell to run a VBA script?

Posted on

QUESTION :

I know how to create a button and assign a VBA script to run when it is pressed. But, I need a script to run just because someone has entered text in a cell. So that once a cell becomes non-blank, a script will be run.

ANSWER :

Yes………

You are describing a worksheet Event Macro. Here is an example for cell B9:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range

    Set rng = Range("B9")
    If Intersect(rng, Target) Is Nothing Then Exit Sub

    Application.EnableEvents = False
        MsgBox rng.Value
    Application.EnableEvents = True
End Sub

The macro is triggered whenever a manual change is made to the cell.

Because it is worksheet code, it is very easy to install and automatic to use:

  1. right-click the tab name near the bottom of the Excel window
  2. select View Code – this brings up a VBE window
  3. paste the stuff in and close the VBE window

If you have any concerns, first try it on a trial worksheet.

If you save the workbook, the macro will be saved with it.
If you are using a version of Excel later then 2003, you must save
the file as .xlsm rather than .xlsx

To remove the macro:

  1. bring up the VBE windows as above
  2. clear the code out
  3. close the VBE window

To learn more about macros in general, see:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

and

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

To learn more about Event Macros (worksheet code), see:

http://www.mvps.org/dmcritchie/excel/event.htm

Macros must be enabled for this to work!

Leave a Reply

Your email address will not be published. Required fields are marked *