ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Can't pass a ListBox as a ListBox - must be a Variant?? (https://www.excelbanter.com/excel-programming/408155-cant-pass-listbox-listbox-must-variant.html)

Cheryl & Mike Arsenault

Can't pass a ListBox as a ListBox - must be a Variant??
 
Please have a look at the 2 subs below

Private Sub POLines_Change()
UpdateTransferButton POLines, AddPSLines
End Sub

Private Sub UpdateTransferButton(ByRef lb As ListBox, ByRef b As
CommandButton)
Dim index As Integer
For index = 0 To lb.ListCount - 1
If lb.Selected(index) Then
b.Enabled = True
Exit Sub
End If
Next
b.Enabled = False
End Sub

From the first subroutine, I'm trying to call the second one, which takes as
parameters a ListBox and a CommandButton. I'm getting a runtime error on the
call form the first subroutine indicating that I have type mismatch. Can
someone tell me why??

When I change the 2 parameters to Variants, everything is OK.

Why can't I pass a ListBox as a ListBox and same with a CommandButton

Thanks
Mike



Per Jessen

Can't pass a ListBox as a ListBox - must be a Variant??
 
Hi

You have to use the named arguments:

Private Sub POLines_Change()
Call UpdateTransferButton(lb:=POLines, b:=AddPSLines)
End Sub

or

Private Sub POLines_Change()
UpdateTransferButton lb:=POLines, b:=AddPSLines
End Sub

Regards,

Per

"Cheryl & Mike Arsenault" skrev i meddelelsen
...
Please have a look at the 2 subs below

Private Sub POLines_Change()
UpdateTransferButton POLines, AddPSLines
End Sub

Private Sub UpdateTransferButton(ByRef lb As ListBox, ByRef b As
CommandButton)
Dim index As Integer
For index = 0 To lb.ListCount - 1
If lb.Selected(index) Then
b.Enabled = True
Exit Sub
End If
Next
b.Enabled = False
End Sub

From the first subroutine, I'm trying to call the second one, which takes
as parameters a ListBox and a CommandButton. I'm getting a runtime error
on the call form the first subroutine indicating that I have type
mismatch. Can someone tell me why??

When I change the 2 parameters to Variants, everything is OK.

Why can't I pass a ListBox as a ListBox and same with a CommandButton

Thanks
Mike



Jim Cone

Can't pass a ListBox as a ListBox - must be a Variant??
 

How are the variables POLines and AddPSLines declared?
The type declarations in the called sub should be the same as the original type declarations.
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)




"Cheryl & Mike Arsenault"
wrote in message
Please have a look at the 2 subs below

Private Sub POLines_Change()
UpdateTransferButton POLines, AddPSLines
End Sub

Private Sub UpdateTransferButton(ByRef lb As ListBox, ByRef b As
CommandButton)
Dim index As Integer
For index = 0 To lb.ListCount - 1
If lb.Selected(index) Then
b.Enabled = True
Exit Sub
End If
Next
b.Enabled = False
End Sub

From the first subroutine, I'm trying to call the second one, which takes as
parameters a ListBox and a CommandButton. I'm getting a runtime error on the
call form the first subroutine indicating that I have type mismatch. Can
someone tell me why??

When I change the 2 parameters to Variants, everything is OK.
Why can't I pass a ListBox as a ListBox and same with a CommandButton
Thanks
Mike



Cheryl & Mike Arsenault

Can't pass a ListBox as a ListBox - must be a Variant??
 

"Per Jessen" wrote in message
...
Hi

You have to use the named arguments:

Private Sub POLines_Change()
Call UpdateTransferButton(lb:=POLines, b:=AddPSLines)
End Sub

or

Private Sub POLines_Change()
UpdateTransferButton lb:=POLines, b:=AddPSLines
End Sub

Regards,

Per

"Cheryl & Mike Arsenault" skrev i meddelelsen
...
Please have a look at the 2 subs below

Private Sub POLines_Change()
UpdateTransferButton POLines, AddPSLines
End Sub

Private Sub UpdateTransferButton(ByRef lb As ListBox, ByRef b As
CommandButton)
Dim index As Integer
For index = 0 To lb.ListCount - 1
If lb.Selected(index) Then
b.Enabled = True
Exit Sub
End If
Next
b.Enabled = False
End Sub

From the first subroutine, I'm trying to call the second one, which takes
as parameters a ListBox and a CommandButton. I'm getting a runtime error
on the call form the first subroutine indicating that I have type
mismatch. Can someone tell me why??

When I change the 2 parameters to Variants, everything is OK.

Why can't I pass a ListBox as a ListBox and same with a CommandButton

Thanks
Mike



Thanks for the suggestion, but I tried that with no effect - still get Type
Mismatch!!

Mike



Dick Kusleika[_4_]

Can't pass a ListBox as a ListBox - must be a Variant??
 
On Sat, 22 Mar 2008 06:38:27 -0400, "Cheryl & Mike Arsenault"
wrote:

Please have a look at the 2 subs below

Private Sub POLines_Change()
UpdateTransferButton POLines, AddPSLines
End Sub

Private Sub UpdateTransferButton(ByRef lb As ListBox, ByRef b As
CommandButton)
Dim index As Integer
For index = 0 To lb.ListCount - 1
If lb.Selected(index) Then
b.Enabled = True
Exit Sub
End If
Next
b.Enabled = False
End Sub

From the first subroutine, I'm trying to call the second one, which takes as
parameters a ListBox and a CommandButton. I'm getting a runtime error on the
call form the first subroutine indicating that I have type mismatch. Can
someone tell me why??

When I change the 2 parameters to Variants, everything is OK.

Why can't I pass a ListBox as a ListBox and same with a CommandButton


In addition to the other responses, sometimes there's a conflict between
classes with the same names. Try calling out those arguments as

MSForms.ListBox
MSForms.CommandButton

and see if that takes care of it.
--
Dick Kusleika
Microsoft MVP-Excel
http://www.dailydoseofexcel.com


All times are GMT +1. The time now is 03:02 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com