View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Objects and Variables

Answers provided so far assume these are on a Userform. If they are on a
worksheet and from the control toolbox toolbar, you can use a similar
approach

Dim OleObj as OleObject
varr = Array("cbPart","txtDesc","txtLoc","txtUsed","txtLe ft")

for i = 1 to 83
for j = lbound(varr) to ubound(varr)
set OleObj = ActiveSheet.OleObjects(varr(j) & i)
if typeof OleObj.Object is MSForms.Textbox then
OleObj.Object.Value = ""
elseif typeof OleObj.Object is MsForms.Checkbox then
OleObj.Object.Value = False
end if
next j
next i

--
Regards,
Tom Ogilvy


Geoff H wrote in message
om...
Hi
Can anyone help me with a little problem. I wish to access a number of
objects (eg textboxes or check boxes) using a "for Next "loop with a
variable instead of how it is now

cbPart1.Value = ""
txtDesc1.Value = ""
txtLoc1.Value = ""
txtUsed1.Value = ""
txtLeft1.Value = ""

cbPart2.Value = ""
txtDesc2.Value = ""
txtLoc2.Value = ""
txtUsed2.Value = ""
txtLeft2.Value = ""

cbPart3.Value = ""
txtDesc3.Value = ""
txtLoc3.Value = ""
txtUsed3.Value = ""
txtLeft3.Value = ""

I have tried using the following and minor variations

For iCount = 1 to 10
oTemp1 = "cbPart" & (iCount)
oTemp2 = "txtDesc" & (iCount)
oTemp3 = "txtLoc" & (iCount)
oTemp4 = "txtUsed" & (iCount)
oTemp5 = "txtLeft1" & (iCount)

oTemp1.Value = ""
oTemp2.Value = ""
oTemp3.Value = ""
oTemp4.Value = ""
oTemp5.Value = ""

next

May not be the best illustration (I have one instance where I need to
test the status of 83 check boxes)but what I am after is the method or
ability to convert variables to object references as VBA doesnt seem
to support Control Arrays.

Am I flogging a dead horse?

Any help would be well helpfull (Holy Grail)