Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I have an application where I am trying to enable/disable the controls in a
frame on a UserForm in VBA Office 2003. I have a checkbox in the frame and when the checkbox is clicked, based on its value, I want to call one of two subroutines. The subroutines have two arguments: the frame and the checkbox. Whenever I try to run this code I get a type mismatch error. I know the default property of the checkbox is the value property. Is it possible that when I call the subs and reference the checkbox that it is trying to send a boolean reference instead of a reference to the actual checkbox control? If that is the case how do I get around this? If that isn't the problem, what is, and how do I get it to work? The code is below. Thanks. CheckBox clicked event: Private Sub ckbTalentMod1_Click() If ckbTalentMod1.Value = True Then Call EnableObjects(fraTalentMod1, ckbTalentMod1) Else Call DisableObjects(fraTalentMod1, ckbTalentMod1) End If End Sub Subroutine to enable the controls in the frame: |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sorry, I forgot to paste the subroutine. Here it is.
Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub Again, thanks. "MikeAllgood" wrote: I have an application where I am trying to enable/disable the controls in a frame on a UserForm in VBA Office 2003. I have a checkbox in the frame and when the checkbox is clicked, based on its value, I want to call one of two subroutines. The subroutines have two arguments: the frame and the checkbox. Whenever I try to run this code I get a type mismatch error. I know the default property of the checkbox is the value property. Is it possible that when I call the subs and reference the checkbox that it is trying to send a boolean reference instead of a reference to the actual checkbox control? If that is the case how do I get around this? If that isn't the problem, what is, and how do I get it to work? The code is below. Thanks. CheckBox clicked event: Private Sub ckbTalentMod1_Click() If ckbTalentMod1.Value = True Then Call EnableObjects(fraTalentMod1, ckbTalentMod1) Else Call DisableObjects(fraTalentMod1, ckbTalentMod1) End If End Sub Subroutine to enable the controls in the frame: |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As
msforms.CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And _ TypeName(cCtl) < "Label" And _ cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "MikeAllgood" wrote in message ... Sorry, I forgot to paste the subroutine. Here it is. Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub Again, thanks. "MikeAllgood" wrote: I have an application where I am trying to enable/disable the controls in a frame on a UserForm in VBA Office 2003. I have a checkbox in the frame and when the checkbox is clicked, based on its value, I want to call one of two subroutines. The subroutines have two arguments: the frame and the checkbox. Whenever I try to run this code I get a type mismatch error. I know the default property of the checkbox is the value property. Is it possible that when I call the subs and reference the checkbox that it is trying to send a boolean reference instead of a reference to the actual checkbox control? If that is the case how do I get around this? If that isn't the problem, what is, and how do I get it to work? The code is below. Thanks. CheckBox clicked event: Private Sub ckbTalentMod1_Click() If ckbTalentMod1.Value = True Then Call EnableObjects(fraTalentMod1, ckbTalentMod1) Else Call DisableObjects(fraTalentMod1, ckbTalentMod1) End If End Sub Subroutine to enable the controls in the frame: |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Now what happens is the subroutine is getting called but when it get to the
line: cCtl.enable = True I get a "Object doesn't support this property or method" error (Error 438). Why would a control object not have an enable property? What am I doing wrong? Thanks, Mike Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As _ CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And _ cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True <---Error happens here! End If Next cCtl End Sub "Bob Phillips" wrote: Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As msforms.CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And _ TypeName(cCtl) < "Label" And _ cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "MikeAllgood" wrote in message ... Sorry, I forgot to paste the subroutine. Here it is. Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub Again, thanks. "MikeAllgood" wrote: I have an application where I am trying to enable/disable the controls in a frame on a UserForm in VBA Office 2003. I have a checkbox in the frame and when the checkbox is clicked, based on its value, I want to call one of two subroutines. The subroutines have two arguments: the frame and the checkbox. Whenever I try to run this code I get a type mismatch error. I know the default property of the checkbox is the value property. Is it possible that when I call the subs and reference the checkbox that it is trying to send a boolean reference instead of a reference to the actual checkbox control? If that is the case how do I get around this? If that isn't the problem, what is, and how do I get it to work? The code is below. Thanks. CheckBox clicked event: Private Sub ckbTalentMod1_Click() If ckbTalentMod1.Value = True Then Call EnableObjects(fraTalentMod1, ckbTalentMod1) Else Call DisableObjects(fraTalentMod1, ckbTalentMod1) End If End Sub Subroutine to enable the controls in the frame: |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Enabled, not Enable
-- Tim Zych SF, CA "MikeAllgood" wrote in message ... Now what happens is the subroutine is getting called but when it get to the line: cCtl.enable = True I get a "Object doesn't support this property or method" error (Error 438). Why would a control object not have an enable property? What am I doing wrong? Thanks, Mike Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As _ CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And _ cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True <---Error happens here! End If Next cCtl End Sub "Bob Phillips" wrote: Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As msforms.CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And _ TypeName(cCtl) < "Label" And _ cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub -- --- HTH Bob (there's no email, no snail mail, but somewhere should be gmail in my addy) "MikeAllgood" wrote in message ... Sorry, I forgot to paste the subroutine. Here it is. Public Sub EnableObjects(ByRef fraEnable As Frame, ByRef myCheckBox As CheckBox) Dim cCtl As Control For Each cCtl In fraEnable.Controls If cCtl.Name < myCheckBox.Name And TypeName(cCtl) < "Label" And cCtl.Name < "txtTalentMod1Total" Then cCtl.enable = True End If Next cCtl End Sub Again, thanks. "MikeAllgood" wrote: I have an application where I am trying to enable/disable the controls in a frame on a UserForm in VBA Office 2003. I have a checkbox in the frame and when the checkbox is clicked, based on its value, I want to call one of two subroutines. The subroutines have two arguments: the frame and the checkbox. Whenever I try to run this code I get a type mismatch error. I know the default property of the checkbox is the value property. Is it possible that when I call the subs and reference the checkbox that it is trying to send a boolean reference instead of a reference to the actual checkbox control? If that is the case how do I get around this? If that isn't the problem, what is, and how do I get it to work? The code is below. Thanks. CheckBox clicked event: Private Sub ckbTalentMod1_Click() If ckbTalentMod1.Value = True Then Call EnableObjects(fraTalentMod1, ckbTalentMod1) Else Call DisableObjects(fraTalentMod1, ckbTalentMod1) End If End Sub Subroutine to enable the controls in the frame: |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Passing Constant Arguments to custom Subroutine & Functions | Excel Programming | |||
Passing Module to subroutine | Excel Programming | |||
Excel vba - passing a 3-dimensional array to a subroutine | Excel Programming | |||
How to check workbook is already opened before passing the workbook obj to a subroutine in Word | Excel Programming | |||
Passing arrays to a subroutine | Excel Programming |