Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Hi,

I have a form with a label control on it. I want to pass this as an argument
to a function which does a test. The problem is that this gives me a type
mismatch on this form which calls it. If you hover the mouse cursor over the
argument which is passed to the function from the calling method in the
form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:
Hi,

I have a form with a label control on it. I want to pass this as an argument
to a function which does a test. The problem is that this gives me a type
mismatch on this form which calls it. If you hover the mouse cursor over the
argument which is passed to the function from the calling method in the
form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Type mismatch .....


....Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...
Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:
Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this gives
me a type mismatch on this form which calls it. If you hover the mouse
cursor over the argument which is passed to the function from the calling
method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:
Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...

Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:

Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this gives
me a type mismatch on this form which calls it. If you hover the mouse
cursor over the argument which is passed to the function from the calling
method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Andy, thanks for your help, this was the problem.

Why do the brackets cause this behaviour, ie the logic behind it.?


"Andy Pope" wrote in message
...
Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which is
the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:
Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...

Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:

Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this gives
me a type mismatch on this form which calls it. If you hover the mouse
cursor over the argument which is passed to the function from the
calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Actually, this is still an issue because I am actually going to need to pass
this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
...
Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which is
the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:
Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...

Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:

Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this gives
me a type mismatch on this form which calls it. If you hover the mouse
cursor over the argument which is passed to the function from the
calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:
Actually, this is still an issue because I am actually going to need to pass
this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
...

Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which is
the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:

Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...


Hi,


If by form you mean userform then the object type would be MSForms.Label

Cheers
Andy

Goofy wrote:


Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this gives
me a type mismatch on this form which calls it. If you hover the mouse
cursor over the argument which is passed to the function from the
calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Unfotunately, I get the same error message, as soon as the damn control is
inside those brackets it refuses to work. Progress is the name of the Label
in the form.PCM is the object whioch contains the function I am trying to
pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
...
If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:
Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
...

Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:

Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
.. .


Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:


Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover the
mouse cursor over the argument which is passed to the function from
the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument


I see what you are saying, but I need the result and the passing to happen
at the same time. or maybe I can change this to a sub and have it pass back
the result by reference.


"Andy Pope" wrote in message
...
If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:
Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
...

Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:

Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
.. .


Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:


Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover the
mouse cursor over the argument which is passed to the function from
the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:
Unfotunately, I get the same error message, as soon as the damn control is
inside those brackets it refuses to work. Progress is the name of the Label
in the form.PCM is the object whioch contains the function I am trying to
pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
...

If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:

Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
. ..


Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:


Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
. ..



Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:



Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover the
mouse cursor over the argument which is passed to the function from
the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info


  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

I changed it to a sub, to see if I could use the parameters passed to get
the result, but I get the same
problem.

'Calling
Dim stage1Result As Boolean
pcm.ownerValidationReport ws, we, drpCells.Value, ScheduleVerbIntegrety,
False, True, progress, stage1Result
If Not stage1Result Then


'Called
Public Sub ownerValidationReport(weekStart As Integer, weekEnd As Integer,
cell As String, validation As validationType, includeSuccesses As Boolean,
loggingContinued As Boolean, ByRef progressLabel As msForms.Label, result As
Boolean)

Dim spreadSheetYear As Integer
Dim allWeeks As Boolean
Dim thereWereErrors As Boolean







"Andy Pope" wrote in message
...
So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:
Unfotunately, I get the same error message, as soon as the damn control
is inside those brackets it refuses to work. Progress is the name of the
Label in the form.PCM is the object whioch contains the function I am
trying to pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
...

If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:

Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
...


Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:


Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
.. .



Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:



Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover
the mouse cursor over the argument which is passed to the function
from the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument

Andy,

I have to go now, so I will read any reply you send tomorrow morning.

Many Thanks


"Goofy" wrote in message
...
I changed it to a sub, to see if I could use the parameters passed to get
the result, but I get the same
problem.

'Calling
Dim stage1Result As Boolean
pcm.ownerValidationReport ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress, stage1Result
If Not stage1Result Then


'Called
Public Sub ownerValidationReport(weekStart As Integer, weekEnd As Integer,
cell As String, validation As validationType, includeSuccesses As Boolean,
loggingContinued As Boolean, ByRef progressLabel As msForms.Label, result
As Boolean)

Dim spreadSheetYear As Integer
Dim allWeeks As Boolean
Dim thereWereErrors As Boolean







"Andy Pope" wrote in message
...
So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:
Unfotunately, I get the same error message, as soon as the damn control
is inside those brackets it refuses to work. Progress is the name of the
Label in the form.PCM is the object whioch contains the function I am
trying to pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
...

If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:

Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets
?


"Andy Pope" wrote in message
l...


Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label,
which is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:


Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
. ..



Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:



Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover
the mouse cursor over the argument which is passed to the function
from the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

Hi,

I get a compile error due to the Validation variable. It does not
understand what validationType is.

But if I use Variant instead I can get it to work as either sub or function.

If you want to email me your code off NG you can.

Cheers
Andy

Goofy wrote:
I changed it to a sub, to see if I could use the parameters passed to get
the result, but I get the same
problem.

'Calling
Dim stage1Result As Boolean
pcm.ownerValidationReport ws, we, drpCells.Value, ScheduleVerbIntegrety,
False, True, progress, stage1Result
If Not stage1Result Then


'Called
Public Sub ownerValidationReport(weekStart As Integer, weekEnd As Integer,
cell As String, validation As validationType, includeSuccesses As Boolean,
loggingContinued As Boolean, ByRef progressLabel As msForms.Label, result As
Boolean)

Dim spreadSheetYear As Integer
Dim allWeeks As Boolean
Dim thereWereErrors As Boolean







"Andy Pope" wrote in message
...

So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:

Unfotunately, I get the same error message, as soon as the damn control
is inside those brackets it refuses to work. Progress is the name of the
Label in the form.PCM is the object whioch contains the function I am
trying to pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
...


If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:


Actually, this is still an issue because I am actually going to need to
pass this to a function and I cant get away with removing the brackets ?


"Andy Pope" wrote in message
l...



Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label, which
is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:



Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
. ..




Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:




Hi,

I have a form with a label control on it. I want to pass this as an
argument to a function which does a test. The problem is that this
gives me a type mismatch on this form which calls it. If you hover
the mouse cursor over the argument which is passed to the function

from the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
  #14   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 54
Default Passing a Control as an Argument


Hi Andy,

Thanks for all your help yesterday. In the end it was nothing to do with the
Label being passed, the error was due to something further down, I was
clicking on Step Over not step in, so I assumed the error was at the calling
line when in reality it was not.


Regards - Goofy





"Andy Pope" wrote in message
...
Hi,

I get a compile error due to the Validation variable. It does not
understand what validationType is.

But if I use Variant instead I can get it to work as either sub or
function.

If you want to email me your code off NG you can.

Cheers
Andy

Goofy wrote:
I changed it to a sub, to see if I could use the parameters passed to get
the result, but I get the same
problem.

'Calling
Dim stage1Result As Boolean
pcm.ownerValidationReport ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress, stage1Result
If Not stage1Result Then


'Called
Public Sub ownerValidationReport(weekStart As Integer, weekEnd As
Integer, cell As String, validation As validationType, includeSuccesses
As Boolean, loggingContinued As Boolean, ByRef progressLabel As
msForms.Label, result As Boolean)

Dim spreadSheetYear As Integer
Dim allWeeks As Boolean
Dim thereWereErrors As Boolean







"Andy Pope" wrote in message
...

So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:

Unfotunately, I get the same error message, as soon as the damn control
is inside those brackets it refuses to work. Progress is the name of the
Label in the form.PCM is the object whioch contains the function I am
trying to pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
.. .


If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:


Actually, this is still an issue because I am actually going to need
to pass this to a function and I cant get away with removing the
brackets ?


"Andy Pope" wrote in message
bl...



Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label,
which is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:



Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
...




Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:




Hi,

I have a form with a label control on it. I want to pass this as
an argument to a function which does a test. The problem is that
this gives me a type mismatch on this form which calls it. If you
hover the mouse cursor over the argument which is passed to the
function

from the calling method in the form, it returns a string value.

Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



  #15   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,489
Default Passing a Control as an Argument

Ok, thanks for letting us know.

Cheers
Andy

Goofy wrote:
Hi Andy,

Thanks for all your help yesterday. In the end it was nothing to do with the
Label being passed, the error was due to something further down, I was
clicking on Step Over not step in, so I assumed the error was at the calling
line when in reality it was not.


Regards - Goofy





"Andy Pope" wrote in message
...

Hi,

I get a compile error due to the Validation variable. It does not
understand what validationType is.

But if I use Variant instead I can get it to work as either sub or
function.

If you want to email me your code off NG you can.

Cheers
Andy

Goofy wrote:

I changed it to a sub, to see if I could use the parameters passed to get
the result, but I get the same
problem.

'Calling
Dim stage1Result As Boolean
pcm.ownerValidationReport ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress, stage1Result
If Not stage1Result Then


'Called
Public Sub ownerValidationReport(weekStart As Integer, weekEnd As
Integer, cell As String, validation As validationType, includeSuccesses
As Boolean, loggingContinued As Boolean, ByRef progressLabel As
msForms.Label, result As Boolean)

Dim spreadSheetYear As Integer
Dim allWeeks As Boolean
Dim thereWereErrors As Boolean







"Andy Pope" wrote in message
...


So what do the function ownerValidationReport argument list look like?
And do the arguments you are passing in match those the function is
expecting?

Cheers
Andy

Goofy wrote:


Unfotunately, I get the same error message, as soon as the damn control
is inside those brackets it refuses to work. Progress is the name of the
Label in the form.PCM is the object whioch contains the function I am
trying to pass the Label to

Dim stage1Result As Boolean
stage1Result = pcm.ownerValidationReport(ws, we, drpCells.Value,
ScheduleVerbIntegrety, False, True, progress)


Thanks for your help


"Andy Pope" wrote in message
. ..



If it is a function you can use the brackets if you assign the returned
value to a variable.

Private Sub CommandButton1_Click()

Dim c1 As New Class1
Dim blnResult As Boolean

c1.addStuff Label1
blnResult = c1.addStuff(Label1)

End Sub

'Class code

Public Function addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

addStuff = True

End Function


Goofy wrote:



Actually, this is still an issue because I am actually going to need
to pass this to a function and I cant get away with removing the
brackets ?


"Andy Pope" wrote in message
. gbl...




Lose the brackets around the passed argument.
The brackets are actually causing the default value of the label,
which is the caption property, to be passed rather than the object.

Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff Label1

End Sub


Goofy wrote:




Type mismatch .....


...Calling Form.......
Private Sub CommandButton1_Click()
Dim c1 As New Class1

c1.addStuff (Label1)

End Sub


in class1 . . . . . . . . .

Public Sub addStuff(ByRef myLabel As MSForms.Label)

myLabel.Caption = "Stuff"

End Sub



"Andy Pope" wrote in message
l...





Hi,


If by form you mean userform then the object type would be
MSForms.Label

Cheers
Andy

Goofy wrote:





Hi,

I have a form with a label control on it. I want to pass this as
an argument to a function which does a test. The problem is that
this gives me a type mismatch on this form which calls it. If you
hover the mouse cursor over the argument which is passed to the
function

from the calling method in the form, it returns a string value.


Any IDeas ?

Public Function MyFunction( myLabel as Label ) As Boolean

myLabel.Caption = "SomeString"

MyFunction = True

End Function




--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info



--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info





--

Andy Pope, Microsoft MVP - Excel
http://www.andypope.info
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
Passing a UDF as an argument to a UDF puff Excel Discussion (Misc queries) 3 February 23rd 06 09:46 PM
Passing argument to another Sub Roman Excel Programming 6 February 1st 05 09:17 PM
Passing Worksheet tab as an argument. Kashizzz Excel Programming 4 September 2nd 04 08:37 AM
Need help passing an array as an argument blc[_3_] Excel Programming 3 August 4th 04 10:35 PM
VBA - Passing a FUNCTION as an Argument James B Excel Programming 3 February 18th 04 03:42 PM


All times are GMT +1. The time now is 04:06 AM.

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

About Us

"It's about Microsoft Excel"