![]() |
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 |
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 |
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 |
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 |
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 |
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