Solved

Need active control name

Posted on 2012-04-07
6
499 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 46

Expert Comment

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

which works in VB6
0
 
LVL 41

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
Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

 
LVL 41

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 41

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

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

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

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
When you see single cell contains number and text, and you have to get any date out of it seems like cracking our heads.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

816 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now