Refering to an object with a variable

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I have a userform with a number of Command Buttons (Button1, Button2,
etc...). Before the form loads, I would like to change the caption of each
of the buttons (with the use of a loop) to the contents of certain cells.
Can anyone help me with the syntax is to do so. For example:

For x = 1 to 20
ProjectForm.("Button" & x).Caption = Sheet1.Cells(2, x + 2)
 
That is pretty much it. You just need to package it in the initialize event
in the userforms code module

Private Sub Userform_Initialize()
Dim x as Long
Dim cb as MSForms.CommandButton
for x = 1 to 20
set cb = me.Controls("Button" & x)
cb.Caption = Sheet1.Cells(2, x + 2).Value
Next
end sub
 
Try

For x = 1 To 20
ProjectForm.Controls("Button" & x).Caption = Sheet1.Cells(2, x + 2)
Next x

I'm assuming "Button" refers to the commandbutton object names, not the
current caption(s). Unless they changed it in subsequent versions, VBA's
default name for its commandbuttons are CommandButton1, CommandButton2, etc.
If you get an object not found error - you'll need to verify this.
 
Back
Top