TextBox props

G

Garry Jones

I need to move 200 text boxes on a formula.

Instead of moving them by hand I have written some code behind a command
button.

For instance
____________________________________
Private Sub CommandButton1_Click()

UserForm1.TextBox1.top = 10
UserForm1.TextBox1.width = 20
UserForm1.TextBox1.left = 10

End Sub
____________________________________

When I click the command box they move.

But the next time I open the form they are back to the old postions. How
do I get them to maintain the property I set with the button?

Garry Jones
Sweden
 
H

Harald Staff

Tjena Garry

You have to save the settings somewhere and read them back on next load. Within the file,
in another excel file, in a text file, in the registry, in an ini file, in a database,
anywhere. Between sesions, this is. If it's only for the same session then some available
variables will do. (But saving/restoring the user's last settings between sessions is a
nice thing to do anyway).
 
G

Garry Jones

Harald said:
You have to save the settings somewhere and read them back on next load.

So I can't move text boxes by code?

This is nothing to do with users, I have not released this yet, it's not
ready. I am still in the design stage. I have a user form and on it I
have 198 text boxes. I want to move them about a bit.

Simplfying this to four boxes in this order

textbox1 textbox2
textbox3 textbox4

(current postions)

Textbox1, top=10, left=10
Textbox2, top=10, left=100
Textbox3, top=50, left=10
Textbox4, top=50, left=100

I want the following order

textbox1 textbox3
textbox2 textbox4

I wish for textbox3 and textbox4 to change place.

So I have prepared the code needed, with all the top, left and width
positions.

If I run

UserForm1.TextBox2.top = 50
UserForm1.TextBox2.left = 10

UserForm1.TextBox3.top = 10
UserForm1.TextBox3.left = 100

They move when I run the code, but they do not stay there. How do I get
them to stay there, I want a permanent update on the form.
If it's only for the same session then some available variables will do.

Garry Jones
 
H

Harald Staff

Garry Jones said:
So I can't move text boxes by code?

'Course you can. You already have.
They move when I run the code, but they do not stay there. How do I get
them to stay there, I want a permanent update on the form.

When do they stop staying ? What has happened between staying and not staying ? Thing is,
when a form is unloaded, everything goes and it's back to how you initially built it and
no smarter. If I understand your problem right, do some reading on the terms "design time"
and "run time".

Best wishes Harald
 
G

Garry Jones

Harald said:
If I understand your problem right, do some reading on the terms "design time" and "run time".

Yep, that's the one.

I am in design time. I placed 198 text boxes in a formula. But I placed
them in the wrong order. Now I thought I'd be smart (but failed) and
move them in design with VB code. Of course I can grab them all one by
one and move them by hand (mouse) and this would save me time today.
However, in the (near) future I may want to move them around again until
I am happy with their placement. And if I have the code syntax I'll just
have to enter the new required values.

So what I am looking for is a feature to move text boxes around within a
userform whilst still in design stage. And when that is done, "save
current changes to userform appearance".

Ìs there a workaround for this?

As far as reading goes my tasks seem to be too advanced for the simple
books I have and too simple for my complex books. I have been sucessful
in finding a few answers on "exceltips.com" and with Google. I don't
want to overdo questioning this newsgroup as I have little to input at
the moment. I do, however, believe in a solidarity in news and often
answer or try to help people in other newsgroups which are nearer my own
expertise. (I've been in computers since 1979 when I started out as a
mainframe operator in London, happy memories of 2540 card readers, punch
output and paper tape input).

I am greatful for you sharing your time and answering me. Thanks!


Garry Jones
 
H

Harald Staff

Hi again

No, that's pretty impossible. But when you way "wrong order", does that apply to bound
spreadsheet cells or simply Tab order ? The latter is fixed by rightclicking the form in
design time and adjusting the list.

Also, a userform has an event called

Private Sub UserForm_Initialize()

code here runs before the form is loaded/displayed, and would be the ideal place to put
your existing "move boxes" code. I guess/hope this is the workaround you look for. Put
this in the Userform module, nowhere else:

Private Sub UserForm_Initialize()
TextBox2.top = 50
TextBox2.left = 10
TextBox3.top = 10
TextBox3.left = 100
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top