View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default Userform - Return Control Clicked

John Walkenbach shows how to use a class module to create a group of
commandbuttons on a userform so that clicking any button runs the same code.

You can find John's notes he
http://spreadsheetpage.com/index.php..._subrouti ne/

I modified his code to use labels instead of commandbuttons.

This goes in the Class1 module:

Public WithEvents LabelGroup As MSForms.Label
Private Sub LabelGroup_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "Hello from " & LabelGroup.Name & vbLf & LabelGroup.Caption
End Sub

This goes in a General module:

Option Explicit
Dim myLabels() As New Class1
Sub ShowDialog()
Dim LabelCount As Long
Dim ctl As Control

LabelCount = 0
For Each ctl In UserForm1.Controls
If TypeOf ctl Is MSForms.Label Then
LabelCount = LabelCount + 1
ReDim Preserve myLabels(1 To LabelCount)
Set myLabels(LabelCount).LabelGroup = ctl
End If
Next ctl
UserForm1.Show
End Sub




MDubbelboer wrote:

I have a userform that is using a multipage with 13-14 pages and on
each page there will be 5-6 controls (labels) that can be selected.

Instead of writing an event procedure for 13-14x5-6 labels is it
possible to write a generic procedure that will return which label was
selected (double clicked)

To clarify, if on multipage 1 I clicked label 3 I would like the Name
of Label3 to be used in launching a new userform with Label3.name used
as one of the variables on the new userform.
If I click on multipage 12 label 63 i would like label63.name to be
returned.

My original thought was to look at MSForms.Controls but I'm having a
hard time. I was trying to use userform_dblclick or multipage_dblclick
however double clicking on a label (the behaviour i'm trying to
capture) does not get captured.

Any Ideas? Thanks in advance,
mark


--

Dave Peterson