Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 39
Default Arrays and Checkboxes

Hi,
I have four checkboxes on a Userform, named "CheckBox1, etc." and that
need to be disabled if the corresponding value isn't available as a
choice in column 3 of the worksheet. If the number 4 isn't anywhere in
column 3 of the worksheet, then the checkbox (4) on the Userform needs
to be disabled. The code below generates a "Method or data member not
found" error. What do I need to fix to make the code work?
Thanks.
James

Sub Grade_Levels()
Dim NmArray As Variant
Dim Ctr As Integer
NmArray = Array(1, 2, 3, 4)
For Ctr = LBound(NmArray) To UBound(NmArray)
If Application.CountIf(Range("C4:C" & LastRow), NmArray(Ctr))
< 1 Then
UserForm3.CheckBox& NmArray(Ctr).Enabled = False === ERROR
MsgBox NmArray(Ctr)
End If
Next
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,514
Default Arrays and Checkboxes

John Smith formulated the question :
Hi,
I have four checkboxes on a Userform, named "CheckBox1, etc." and that
need to be disabled if the corresponding value isn't available as a
choice in column 3 of the worksheet. If the number 4 isn't anywhere in
column 3 of the worksheet, then the checkbox (4) on the Userform needs
to be disabled. The code below generates a "Method or data member not
found" error. What do I need to fix to make the code work?
Thanks.
James

Sub Grade_Levels()
Dim NmArray As Variant
Dim Ctr As Integer
NmArray = Array(1, 2, 3, 4)
For Ctr = LBound(NmArray) To UBound(NmArray)
If Application.CountIf(Range("C4:C" & LastRow), NmArray(Ctr))
< 1 Then
UserForm3.CheckBox& NmArray(Ctr).Enabled = False === ERROR
MsgBox NmArray(Ctr)
End If
Next
End Sub


You can't do that to objects in any programming language. An object's
name is its ID, and MUST be coded as a constant. IOW, you can't work
with the ref like a string variable. Unfortunatly, unlike VB, VBA does
not support control arrays whereby you can ref a particula control by
its index. For example, if all the checkboxes were named "Checkbx" you
could ref them as Checkbx(0), Checkbx(1), and so on same as an array
index.

In your case you need to check for each value and act on each control
separately...

With Userform3
.CheckBox1.Enabled = _
Application.CountIf(Range("C4:C" & LastRow), 1) 0
.CheckBox2.Enabled = _
Application.CountIf(Range("C4:C" & LastRow), 2) 0
.CheckBox3.Enabled = _
Application.CountIf(Range("C4:C" & LastRow), 3) 0
.CheckBox4.Enabled = _
Application.CountIf(Range("C4:C" & LastRow), 4) 0
End With 'Userform3

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 39
Default Arrays and Checkboxes

On Jan 28, 8:10*pm, GS wrote:
John Smith formulated the question :





Hi,
I have four checkboxes on a Userform, named "CheckBox1, etc." and that
need to be disabled if the corresponding value isn't available as a
choice in column 3 of the worksheet. If the number 4 isn't anywhere in
column 3 of the worksheet, then the checkbox (4) on the Userform needs
to be disabled. The code below generates a "Method or data member not
found" error. What do I need to fix to make the code work?
Thanks.
James


Sub Grade_Levels()
Dim NmArray As Variant
Dim Ctr As Integer
NmArray = Array(1, 2, 3, 4)
* * For Ctr = LBound(NmArray) To UBound(NmArray)
* * * * If Application.CountIf(Range("C4:C" & LastRow), NmArray(Ctr))
< 1 Then
* * * * * *UserForm3.CheckBox& NmArray(Ctr).Enabled = False === ERROR
* * * * * *MsgBox NmArray(Ctr)
* * End If
* * Next
End Sub


You can't do that to objects in any programming language. An object's
name is its ID, and MUST be coded as a constant. IOW, you can't work
with the ref like a string variable. Unfortunatly, unlike VB, VBA does
not support control arrays whereby you can ref a particula control by
its index. For example, if all the checkboxes were named "Checkbx" you
could ref them as Checkbx(0), Checkbx(1), and so on same as an array
index.

In your case you need to check for each value and act on each control
separately...

* With Userform3
* * .CheckBox1.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 1) 0
* * .CheckBox2.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 2) 0
* * .CheckBox3.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 3) 0
* * .CheckBox4.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 4) 0
* End With 'Userform3

--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc- Hide quoted text -

- Show quoted text -


Thanks, Garry, I really appreciate your help!
James
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,514
Default Arrays and Checkboxes

John Smith formulated the question :
On Jan 28, 8:10*pm, GS wrote:
John Smith formulated the question :





Hi,
I have four checkboxes on a Userform, named "CheckBox1, etc." and that
need to be disabled if the corresponding value isn't available as a
choice in column 3 of the worksheet. If the number 4 isn't anywhere in
column 3 of the worksheet, then the checkbox (4) on the Userform needs
to be disabled. The code below generates a "Method or data member not
found" error. What do I need to fix to make the code work?
Thanks.
James


Sub Grade_Levels()
Dim NmArray As Variant
Dim Ctr As Integer
NmArray = Array(1, 2, 3, 4)
* * For Ctr = LBound(NmArray) To UBound(NmArray)
* * * * If Application.CountIf(Range("C4:C" & LastRow), NmArray(Ctr))
< 1 Then
* * * * * *UserForm3.CheckBox& NmArray(Ctr).Enabled = False === ERROR
* * * * * *MsgBox NmArray(Ctr)
* * End If
* * Next
End Sub


You can't do that to objects in any programming language. An object's
name is its ID, and MUST be coded as a constant. IOW, you can't work
with the ref like a string variable. Unfortunatly, unlike VB, VBA does
not support control arrays whereby you can ref a particula control by
its index. For example, if all the checkboxes were named "Checkbx" you
could ref them as Checkbx(0), Checkbx(1), and so on same as an array
index.

In your case you need to check for each value and act on each control
separately...

* With Userform3
* * .CheckBox1.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 1) 0
* * .CheckBox2.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 2) 0
* * .CheckBox3.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 3) 0
* * .CheckBox4.Enabled = _
* *Application.CountIf(Range("C4:C" & LastRow), 4) 0
* End With 'Userform3

--
Garry

Free usenet access athttp://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc- Hide quoted text -

- Show quoted text -


Thanks, Garry, I really appreciate your help!
James


You're welcome. I appreciate the feedback!

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Checkboxes and Arrays baconcow Excel Programming 3 May 9th 08 07:50 PM
Trouble with arrays (transferring values between two arrays) Keith R[_2_] Excel Programming 4 November 14th 07 12:00 AM
Variable arrays & checkboxes Ray Excel Programming 3 June 21st 07 11:53 PM
Working with ranges in arrays... or an introduction to arrays Glen Excel Programming 5 September 10th 06 08:32 AM
Arrays - declaration, adding values to arrays and calculation Maxi[_2_] Excel Programming 1 August 17th 06 04:13 PM


All times are GMT +1. The time now is 05:35 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"