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.
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:
- right-click the tab name near the bottom of the Excel window
- select View Code – this brings up a VBE window
- 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:
- bring up the VBE windows as above
- clear the code out
- close the VBE window
To learn more about macros in general, see:
To learn more about Event Macros (worksheet code), see:
Macros must be enabled for this to work!