Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to make Command Button name dynamic in Excel?

This article is talking about making the name of a Command button changed dynamically with a specified cell value changes. For example, when value in cell A1 has been changed to “test”, the name of a certain Command button will be changed to “test” automatically.

Make Command Button name dynamic with cell value by VBA code


Make Command Button name dynamic with cell value by VBA code


The following VBA code can help you make the name of a command button dynamic with a specified cell value in a worksheet. Please do as follows.

1. Click Developer > Insert > Command Button (ActiveX Control) to insert a command button into the worksheet. See screenshot:

2. After inserting the command button, right click the sheet tab and click View Code from the right-clicking menu as below screenshot shown:

3. In the opening Microsoft Visual Basic for Applications window, please copy and paste below VBA code into the window.

VBA code: Make Command Button name dynamic with cell value

Dim xStr As String
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xShapeRg As ShapeRange
    On Error Resume Next
    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
        Me.CommandButton1.Caption = Target.Text
        Set xShapeRg = ActiveSheet.Shapes.Range(xStr)
        If xShapeRg Is Nothing Then Set xShapeRg = ActiveSheet.Shapes.Range("CommandButton1")
        Application.EnableEvents = False
        xShapeRg.Select
        Application.EnableEvents = True
        Selection.Name = Target.Text
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If (Not Intersect(Target, Range("A1")) Is Nothing) And Target.Text <> "" Then
        xStr = Target.Text
    End If
End Sub

Note: in the code, CommandButton1 is the name of the button you want to make its name dynamic, and A1 is the cell which you will reference the value to the button name automatically.

4. Press the Alt + Q keys to exit the Microsoft Visual Basic for Applications window.

5. Turn off the Design Mode by clicking Developer > Design Mode.

From now on, the name of the Command Button will be changed dynamically with the specified cell value in your worksheet.

As below screenshot shown, when the value of cell A1 has been changed, the name of the command button will be changed to the same value automatically.


Related Articles:



Recommended Productivity Tools for Excel

Kutools for Excel Helps You Always Finish Work Ahead of Time, and Stand Out From Crowd

  • More than 300 powerful advanced features, designed for 1500 work scenarios, increasing productivity by 70%, give you more time to take care of family and enjoy life.
  • No longer need memorizing formulas and VBA codes, give your brain a rest from now on.
  • Become an Excel expert in 3 minutes, Complicated and repeated operations can be done in seconds, 
  • Reduce thousands of keyboard & mouse operations every day, say goodbye to occupational diseases now.
  • 110,000 highly effective people and 300+ world-renowned companies' choice.
  • 60-day full features free trial. 60-day money back guarantees. 2 years of free upgrade and support.

Brings Tabbed Browsing and Editing to Microsoft Office, Far More Powerful Than The Browser's Tabs

  • Office Tab is designed for Word, Excel, PowerPoint and Other Office Applications: 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!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Sam · 8 months ago
    Can anyone suggest how I would extend the VBA to additionally assign a macro to the command button so clicking the command button would execute a macro associated with the command button name? For example, after renaming the command button to "XYZ", also assign the macro named "XYZ" to the command button click event. Thank you for any help.
    • To post as a guest, your comment is unpublished.
      crystal · 7 months ago
      Hi sam,
      Please try as follows.
      1. Turn on the Design Mode by clicking Developer > Design Mode.
      2. Right click the command button and select View Code in the context menu;
      3. Assign your macro between line Private Sub CommandButton1_Click() and End Sub;
      4. Turn off the Design Mode

      Hope I can help.