ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Copying labels to Userform at runtime. (https://www.excelbanter.com/excel-programming/330468-copying-labels-userform-runtime.html)

Henry[_5_]

Copying labels to Userform at runtime.
 
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at the top of the
form.
The sort of thing I want is like a blank crossword grid, where I can adjust
the caption in each label later to be 1 letter.
I've tried to copy a label and then paste it, but VBA doesn't allow this.
Has anyone any suggestions on how to achieve this?

TIA
Henry



Chip Pearson

Copying labels to Userform at runtime.
 
Try something like the following. Change the various properties
to meet your needs.

Dim Ctrl As MSForms.Control
Set Ctrl = UserForm1.Controls.Add("Forms.Label.1", "Label1",
True)
Ctrl.Height = 10
Ctrl.Width = 10
Ctrl.Top = 10
Ctrl.Left = 10
Ctrl.Caption = "A"
UserForm1.Show


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Henry" wrote in message
...
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at the
top of the form.
The sort of thing I want is like a blank crossword grid, where
I can adjust the caption in each label later to be 1 letter.
I've tried to copy a label and then paste it, but VBA doesn't
allow this.
Has anyone any suggestions on how to achieve this?

TIA
Henry




Henry[_5_]

Copying labels to Userform at runtime.
 
Thanks Chip,

The Label takes on the default colours of the form.
All I need now is to change the backcolor, forecolor and border for it to be
as I want.
(White, Black and a black border)
I cannot seem to change them from VBA like a normal Label.

Henry

"Chip Pearson" wrote in message
...
Try something like the following. Change the various properties to meet
your needs.

Dim Ctrl As MSForms.Control
Set Ctrl = UserForm1.Controls.Add("Forms.Label.1", "Label1", True)
Ctrl.Height = 10
Ctrl.Width = 10
Ctrl.Top = 10
Ctrl.Left = 10
Ctrl.Caption = "A"
UserForm1.Show


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Henry" wrote in message
...
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at the top of
the form.
The sort of thing I want is like a blank crossword grid, where I can
adjust the caption in each label later to be 1 letter.
I've tried to copy a label and then paste it, but VBA doesn't allow this.
Has anyone any suggestions on how to achieve this?

TIA
Henry






Chip Pearson

Copying labels to Userform at runtime.
 
Use the ForeColor and BackColor properties of the Ctrl object.

Ctrl.ForeColor = RGB(0, 0, 0)
Ctrl.BackColor = RGB(255, 255, 255)


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"Henry" wrote in message
...
Thanks Chip,

The Label takes on the default colours of the form.
All I need now is to change the backcolor, forecolor and border
for it to be as I want.
(White, Black and a black border)
I cannot seem to change them from VBA like a normal Label.

Henry

"Chip Pearson" wrote in message
...
Try something like the following. Change the various
properties to meet your needs.

Dim Ctrl As MSForms.Control
Set Ctrl = UserForm1.Controls.Add("Forms.Label.1", "Label1",
True)
Ctrl.Height = 10
Ctrl.Width = 10
Ctrl.Top = 10
Ctrl.Left = 10
Ctrl.Caption = "A"
UserForm1.Show


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Henry" wrote in message
...
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at
the top of the form.
The sort of thing I want is like a blank crossword grid,
where I can adjust the caption in each label later to be 1
letter.
I've tried to copy a label and then paste it, but VBA doesn't
allow this.
Has anyone any suggestions on how to achieve this?

TIA
Henry








Philippe Léveillé

Copying labels to Userform at runtime.
 
I'm not sure I understand your problem... but you can try to fill in the
textbox_change() event with some code to do the rest...


"Henry" a écrit dans le message de news:
...
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at the top of the
form.
The sort of thing I want is like a blank crossword grid, where I can
adjust the caption in each label later to be 1 letter.
I've tried to copy a label and then paste it, but VBA doesn't allow this.
Has anyone any suggestions on how to achieve this?

TIA
Henry




Henry[_5_]

Copying labels to Userform at runtime.
 
Thanks Chip,

Now working fine.

Henry


"Chip Pearson" wrote in message
...
Use the ForeColor and BackColor properties of the Ctrl object.

Ctrl.ForeColor = RGB(0, 0, 0)
Ctrl.BackColor = RGB(255, 255, 255)


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


"Henry" wrote in message
...
Thanks Chip,

The Label takes on the default colours of the form.
All I need now is to change the backcolor, forecolor and border for it to
be as I want.
(White, Black and a black border)
I cannot seem to change them from VBA like a normal Label.

Henry

"Chip Pearson" wrote in message
...
Try something like the following. Change the various properties to meet
your needs.

Dim Ctrl As MSForms.Control
Set Ctrl = UserForm1.Controls.Add("Forms.Label.1", "Label1", True)
Ctrl.Height = 10
Ctrl.Width = 10
Ctrl.Top = 10
Ctrl.Left = 10
Ctrl.Caption = "A"
UserForm1.Show


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Henry" wrote in message
...
I'm trying to set up an array of labels on a form at runtime.
The size of the array is determined from a textbox input at the top of
the form.
The sort of thing I want is like a blank crossword grid, where I can
adjust the caption in each label later to be 1 letter.
I've tried to copy a label and then paste it, but VBA doesn't allow
this.
Has anyone any suggestions on how to achieve this?

TIA
Henry











All times are GMT +1. The time now is 02:08 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com