Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default array of labels

I want to modify a UserForm dynamically by adding some number of labels from
my VB/Excel program:
Dim labels() as MSForms.Label
:
ReDim labels(NumLabels)

At this point I have an array of Labels with each value set to Nothing. If
I do this:

Set labels(0) = New MSForms.Label
I get runtime "Invalid use of New keyword" and Help says I cannot reference
a class name in this context -- I need to reference a specific object name,
e.g. Label1. So I tried:

Dim Label1 as MSForms.Label
Set labels(0) = New Label1

and I get "User-defined type not defined"

I have tried other things such as
Dim labels() as New MSForms.Label
and I also get errors.

How do I programmatically create an array of Labels so that I can place them
on my UserForm?


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,533
Default array of labels

Hi

I don't think you can do what you are trying to.

I would put the required number of labels on my userform and leave the
caption blank, then use VBA populate the labels needed.

Regards,
Per

"Wiley Post" skrev i meddelelsen
...
I want to modify a UserForm dynamically by adding some number of labels
from my VB/Excel program:
Dim labels() as MSForms.Label
:
ReDim labels(NumLabels)

At this point I have an array of Labels with each value set to Nothing.
If I do this:

Set labels(0) = New MSForms.Label
I get runtime "Invalid use of New keyword" and Help says I cannot
reference a class name in this context -- I need to reference a specific
object name, e.g. Label1. So I tried:

Dim Label1 as MSForms.Label
Set labels(0) = New Label1

and I get "User-defined type not defined"

I have tried other things such as
Dim labels() as New MSForms.Label
and I also get errors.

How do I programmatically create an array of Labels so that I can place
them on my UserForm?


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default array of labels

I was trying to make one UserForm that could be modified at run time for a
few different callers. I'm a bit surprised that it can't be done, or at
least the modifications I want can't be done.

WP

"Per Jessen" wrote in message
...
Hi

I don't think you can do what you are trying to.

I would put the required number of labels on my userform and leave the
caption blank, then use VBA populate the labels needed.

Regards,
Per

"Wiley Post" skrev i meddelelsen
...
I want to modify a UserForm dynamically by adding some number of labels
from my VB/Excel program:
Dim labels() as MSForms.Label
:
ReDim labels(NumLabels)

At this point I have an array of Labels with each value set to Nothing.
If I do this:

Set labels(0) = New MSForms.Label
I get runtime "Invalid use of New keyword" and Help says I cannot
reference a class name in this context -- I need to reference a specific
object name, e.g. Label1. So I tried:

Dim Label1 as MSForms.Label
Set labels(0) = New Label1

and I get "User-defined type not defined"

I have tried other things such as
Dim labels() as New MSForms.Label
and I also get errors.

How do I programmatically create an array of Labels so that I can place
them on my UserForm?




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default array of labels

You can add controls to a userform during runtime, but I've always found it
much, much, much easier to just add as many controls as I'll ever need--but hide
the ones that I don't need right away.

Then I can unhide the ones I want when I need them.

It makes life a lot simpler this way.

John Walkenbach shows how to create a userform on the fly. This includes adding
controls to that userform:
http://j-walk.com/ss/excel/tips/tip76.htm

This worked ok for me:

Option Explicit
Private Sub CommandButton1_Click()
Dim iCtr As Long

For iCtr = 1 To 3
With Controls.Add(bstrprogid:="Forms.Label.1", _
Name:="LBL_" & iCtr, Visible:=True)
.Left = 5
.Top = iCtr * 15
.Height = 10
.Width = 200
.Caption = "Hi from " & .Name
End With
Next iCtr
End Sub

Wiley Post wrote:

I want to modify a UserForm dynamically by adding some number of labels from
my VB/Excel program:
Dim labels() as MSForms.Label
:
ReDim labels(NumLabels)

At this point I have an array of Labels with each value set to Nothing. If
I do this:

Set labels(0) = New MSForms.Label
I get runtime "Invalid use of New keyword" and Help says I cannot reference
a class name in this context -- I need to reference a specific object name,
e.g. Label1. So I tried:

Dim Label1 as MSForms.Label
Set labels(0) = New Label1

and I get "User-defined type not defined"

I have tried other things such as
Dim labels() as New MSForms.Label
and I also get errors.

How do I programmatically create an array of Labels so that I can place them
on my UserForm?


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Excel 2007 text labels in category axis - missing labels Boris Charts and Charting in Excel 3 December 5th 08 04:33 PM
How do i create labels so, could only move and type in labels only kloniki Excel Discussion (Misc queries) 1 April 12th 08 06:04 AM
Icons __AND__ labels?! How do I get rid of toolbar LABELS! shamblinthru New Users to Excel 2 March 19th 07 09:19 PM
get all the labels of all forms in array RB Smissaert Excel Programming 3 October 23rd 05 08:13 PM
Excel 2003 and Labels (NOT Address Labels) Los Excel Discussion (Misc queries) 2 May 4th 05 01:57 PM


All times are GMT +1. The time now is 03:22 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"