How to run macro based on cell value in Excel?
Supposing, I have multiple macro codes in my workbook, and now, I want to run these codes based on the cell value. This article, I will talk about several situations you may suffered in your daily work when using Excel.
For example, if the value in cell A1 is between 10 and 50, run macro1, and if the value is greater than 50, run macro2. To solve this job in Excel, please apply the following VBA code.
1. Right click the sheet tab that you want to execute the macro based on a cell value, and then choose View Code from the context menu, and in the opened Microsoft Visual Basic for applications window, copy and paste the following code into the blank Module:
VBA code: Run macro if cell value is greater or less than:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Cells.Count > 1 Then Exit Sub If IsNumeric(Target) And Target.Address = "$A$1" Then Select Case Target.Value Case 10 To 50: Macro1 Case Is > 50: Macro2 End Select End If End Sub
Note: In the above code:
A1 is the cell which contains the specific value you want to run the macro based on;
Case 10 To 50: Macro1: it means if the value is between 10 and 50, run Macro1;
Case Is > 50: Macro2: it means if the value is greater than 50, run Macro2.
Please change theses macro names and criteria to your need, and you can also add more criteria following the Case script.
2. Then save and close this code window, now, when the value you enter is between 10 and 50 in cell A1, Macro1 will be triggered, if the entered value is greater than 50, Macro2 is executed.
If you want to trigger the macro based on specific text in a cell, for instance, to run the macro1 if the text “Delete” is entered, and run macro2 if text “Insert” is typed. The following code can do you a favor.
1. Right click the sheet that you want to execute the macro based on the cell value, and then choose View Code from the context menu, and in the opened Microsoft Visual Basic for applications window, copy and paste the following code into the blank Module:
VBA code: Run macro if cell value is a specific text
Sub worksheet_change(ByVal target As Range) Set target = Range("A1") If target.Value = "Delete" Then Call Macro1 End If If target.Value = "Insert" Then Call Macro2 End If End Sub
Note: In the above code, “Delete” and “Insert” are the cell texts that you want to run macros based on, and Macro1 and Macro2 are the macros you want to execute based on text. Please change them to your need.
2. Then save this code and close the window, now, when you enter the text “Delete” in cell A1, macro1 is triggered, if the text “Insert” is entered, macro2 will be executed.
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!