How to run a VBA procedure from an information recognition control in Microsoft Excel


Compile pie charts in excel in isometric illustration Image: hasan/Adobe Stock TechRepublic Academy There are lots of methods to execute a VBA treatment in Microsoft Excel. You can include macro buttons at the sheet level or add them to the ribbon in a custom-made group. When you have multiple procedures, you may want to offer those options in a data validation control. Doing so lets you choose tasks at the sheet level. You can use this method to run any variety of tasks from a basic save task to something more complex such as copying vibrant ranges or running advanced filters.

In this tutorial, I’ll reveal you how to place an information validation control that runs a VBA event procedure. If you’re not familiar with VBA do not stress. I’ll provide total guidelines, however you ought to have fundamental Excel abilities. Throughout this tutorial, I will utilize the term “procedure,” rather of “macro.” Technically, macros and treatments aren’t the same thing, however you will see the terms utilized interchangeably. Even Microsoft does it.

I’m using Microsoft 365 on a Windows 10 64-bit system, however you can utilize earlier variations of Excel. Excel for the web does not support VBA procedures. You can download a . xlsm demo file and sample.cls file for this tutorial.

SEE: How to start an Excel accounting system (TechRepublic Academy)

How to embed a data recognition control in Excel

We’ll begin by creating a data validation control and occupying it with the name of a couple of tasks. When using this to your own work, you might start by developing the occasion procedure initially. It doesn’t matter which path you take.

We’ll include two items to the dropdown list, however you can add many more. Now, let’s place the data validation control. Using the easy presentation sheet shown in Figure A, click B2. Feel free to utilize among your own files if you like or choose another cell. You’ll need to upgrade the real VBA code appropriately. I added formatting so users can discover the control rapidly.

Figure A

close up of an Excel spreadsheet with the cell B2 filled in orange We’ll add a data recognition control to this sheet. Click the Data tab, and then, click Information Recognition in the Data Tools group. In the resulting dialog, choose List from the Permit dropdown. In the Source control, go into Say Hello, Bid Farewell( Figure the Data Validation menu in ExcelB). Click OK. Figure B Specify the data recognition control. As you can see in Figure C, the dropdown contains the “tasks”you went into. There’s no space prior to or after the comma that separates the 2 products. The next step is to include the VBA occasion procedure, but before you do, conserve the file as a macro-enabled file, if

you’re utilizing A dropdown in Excel with two macro options that say the.xlsx format. Figure C The dropdown includes the name of two jobs. How to add the VBA procedures in Excel Picking either item in the dropdown not does anything right now. We require to include the event procedure that runs when you pick one of the products in the dropdown. First, pick the Visual Fundamental option in the Codes group on the Designer tab to open the Visual Basic Editor (VBE). In the Project Explorer to the left, double-click Sheet 1. We’re using a sheet-level module since the control remains in sheet 1. You won’t have access to it from other sheets. Enter Listing A as shown in Figure D.

Listing A

Private Sub Worksheet_Change(ByVal Target As Variety)

‘Enable information recognition control in Sheet1!B2 to execute the treatment.

If Target.Address=”$B$ 2″ Then

Select Case Target.Value

Case “State Hello”

MsgBox “Hello”

Case “Bid farewell”

MsgBox “Bye-bye”

Case Else

MsgBox “Something went wrong”

End Select

End If

End Sub

Figure D

Worksheet command-line interface in Excel Go into the Worksheet_Change event. You can get in the code by hand or import the downloadable.cls file. In addition, the treatment remains in the downloadable.xlsm file. If you enter the code manually, don’t paste from this websites. Instead, copy the code into a text editor, and then, paste that code into the Sheet1 module. Doing so will eliminate any phantom web characters that may otherwise cause mistakes.

VBA triggers this event treatment whenever you make a modification in the sheet. That makes it a bit risky to use in a very busy worksheet– it can slow things down a bit. In this case, you won’t observe a thing.

When activated the occasion treatment checks the present cell (Target). If it isn’t B2, you do not wish to continue, and the IF statement stops the circulation.

The SELECT CASE declaration lets you examine a value for different conditions. In this case, it inspects Target’s worth– that’s B2. If the value equals the text “State Hello,” a message box shows the word “Hi.” If Target’s value is “Say Goodbye,” a message box shows the word “Bye-bye.”

The CASE ELSE clause is there simply in case something else takes place. It displays “Something failed.” When applying this to your own work, you’ll wish to add more significant text or perhaps execute an error-handling routine. By the method, this simple procedure has no error-handling, so you’ll wish to give that some believed when applying this to your own work.

Now that you understand what to anticipate, let’s try it.

How to perform the event treatment using the information recognition control in Excel

Using the data validation control to execute the occasion treatment is the easy part. Merely click the dropdown, and choose among the products. Do so now, and pick the first product Say Hey there. You ought to see the message box shown in Figure E.

Figure E

A macro in Excel that says The occasion procedure shows”Say Hello.”Notification that the Formula bar shows the text of the picked item. That’s since the recognition control gets in the item into B2, which’s why the code can check for the picked item. Close the message box, and try again. This time choose Say Goodbye to display the message shown in Figure F. Notification that the text in the Solution bar is “Say Goodbye.”

Figure F

Excel macro that says The occasion treatment shows “Say Goodbye,” this time. Let’s try it one more time. This time, delete the contents. Doing so will set off the occasion treatment, which will wind up evaluating the CASE ELSE clause, which shows the message shown in Figure G.

Figure G

a pop-up in Excel that says The code even lets you understand when something went wrong. If the procedure does not run, examine your Trust Settings to make certain procedures are enabled as follows:

  1. Click the File tab.
  2. Click Alternatives in the left pane.
  3. Click Trust Center, and after that, click Trust Center Settings.
  4. In the left pane, click Macro Settings.
  5. Click the Disable VBA macros with notification options if necessary. This setting obstructs procedures however allows on a case-by-case basis.

The code is simple on purpose, however when you use the strategy to your own work, the code will more than likely be more intricate. The focus is the data recognition setup, which sets off the occasion treatment. That’s the piece of this technique that you really need. It’s simple and yet not well known.


Leave a Reply

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