Solved

Need active control name

Posted on 2012-04-07
6
526 Views
Last Modified: 2012-04-27
From a field on a excel form  (excel 2003),  I would like to get the active field name.  Can anyone help?
0
Comment
Question by:tru-numbers
  • 3
  • 2
6 Comments
 
LVL 47

Expert Comment

by:Martin Liss
ID: 37820212
Try Screen.ActiveControl.Name

which works in VB6
0
 
LVL 42

Expert Comment

by:dlmille
ID: 37820241
Use:

Me.ActiveControl.name

or:

Userform1.ActiveControl.Name (replace Userform1 with the name of your userform)

Dave
0
 

Author Comment

by:tru-numbers
ID: 37826938
Yes, this works! But I have a control on a multipage control.  How do I obtain the active control when the user clicks on a field within the multipage?
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 42

Expert Comment

by:dlmille
ID: 37828356
For a multi-page control, you can use:

Me.ActiveControl.Object.SelectedItem.ActiveControl.Name

Or, you could use (where MultiPage1 is the name of your multipage control):

Me.MultiPage1.Pages(Me.MultiPage1.Value).ActiveControl.Name

And if the multipage is inside a frame:

Me.MultiPage1.Pages(Me.MultiPage1.Value).Frame1.ActiveControl.Name

If you don't know where the control might be you can try this code, which I just tested in a bunch of nested frames, tab strips, and multipage controls, to get the name of a checkbox control I clicked on the click event:

Sub getActiveControl()
Dim actCtrl As Control

    Set actCtrl = getControl(Me.ActiveControl)
    MsgBox actCtrl.Name
    
End Sub
Function getControl(ctrl As Control) As Control

    If TypeOf ctrl Is MSForms.Frame Then
        Set getControl = getControl(ctrl.ActiveControl)
    ElseIf TypeOf ctrl Is MSForms.MultiPage Then
        Set getControl = getControl(ctrl.Object.SelectedItem.ActiveControl)
    Else
        Set getControl = ctrl
    End If
End Function

Open in new window

0
 
LVL 42

Accepted Solution

by:
dlmille earned 500 total points
ID: 37900874
@tru-numbers - did you have success with the code I posted?  Please advise if more assistance is needed.  The code, above, is tested and works.  If you need a demonstration workbook leveraging this code as more of an example, just ask.

Cheers,

Dave
0
 

Author Closing Comment

by:tru-numbers
ID: 37903473
Thanks for youe assistance
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show you how to use shortcut menus in the Access run-time environment.
Excel can be a tricky bit of software to get your head around. Whilst you’ll be able to eventually get to grips with the basic understanding of how to get by, there are a few Excel tips that not everybody will even know about let alone know how to d…
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question