Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / December 2007

Tip: Looking for answers? Try searching our database.

Worksheet Codenames Passing to Function

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Nigel - 10 Dec 2007 10:13 GMT
Hi All
I wish to pass a worksheet codename to function.  How do I do this?

So far......this fails to pass the codename shAIF to the function

Sub Test
  MsgBox FindReport(shAIF, "New Report")
End Sub

Function FindReport(searchSh as Worksheet, searchText as String) as Long
FindReport = 0
Dim c
With xSh
   Set c = .Cells.Find(xFind, LookIn:=xlValues)
   If Not c Is Nothing Then
     FindReport = c.address.Row
   End If
End With
End Function

Signature

Regards,
Nigel
nigelnospam@9sw.co.uk

Peter T - 10 Dec 2007 11:23 GMT
Where or why do you need a sheet's code name. It's a bit confusing, you say
"this fails to pass the codename shAIF to the function"
but you havn't attempted to pass it, the first argument in your function
expects a worksheet object.

Sheet1, without quotes, could be passed if that's what you want, to refer to
a sheet within same project as the code (ie hardcoded and potentially
unreliable)
or are you saying you know the codename as a string and want to use that to
get a reference to the sheet object.

In passing, your function would work with following changes (subject to
receiving a worksheet object) -

change
> With xSh
to
With searchSh

change
>     Set c = .Cells.Find(xFind, LookIn:=xlValues)
to
    Set c = .Cells.Find(searchText , LookIn:=xlValues)

change
>       FindReport = c.address.Row
to
FindReport = c.Row

If you want to retrieve the codename from the worksheet object
Dim sCodeName as string

sCodeName = searchSh.Codename
NOTE  cannot return codename of newly inserted sheet unless the VBE is open,
or the wb has been subsequently saved or quite a lot more work depending on
xl version.

Regards,
Peter T

> Hi All
> I wish to pass a worksheet codename to function.  How do I do this?
[quoted text clipped - 15 lines]
> End With
> End Function
Nigel - 10 Dec 2007 11:47 GMT
Hi Peter

Thanks for the fixes to the code. Sorry to confuse but in addition

I have the codename which is shAIF, if I store the value shAIF in a string
(myString) and pass that it does not work?

So
FindReport(shAIF, searchText)   ' works as shAIF resolves to a sheet

But
FindReport(myString, searchText) 'does not work!

Any help please.
Signature


Regards,
Nigel
nigelnospam@9sw.co.uk

> Where or why do you need a sheet's code name. It's a bit confusing, you
> say
[quoted text clipped - 60 lines]
>> End With
>> End Function
Peter T - 10 Dec 2007 12:01 GMT
> FindReport(shAIF, searchText)   ' works as shAIF resolves to a sheet

Not sure what you mean by the "resolves" in "works as shAIF resolves to a
sheet". In order to work shAIF would need to be a sheet object or a
reference to a sheet object. If shAIF is the actual codename of a sheet, you
could pass it without quotes; note - as I mentioned before it would need to
be a sheet within the same project as the code, not necessarily the
activeworkbook.

> FindReport(myString, searchText) 'does not work!

Obviously not, the first argument of FindReport expects a worksheet object,
not a string.

I'm still confused as to what you are trying to do.

Regards,
Peter T

> Hi Peter
>
[quoted text clipped - 74 lines]
> >> End With
> >> End Function
Jim Cone - 10 Dec 2007 11:26 GMT
Must be one of those days <g>...
Change With xSh to With searchSh
Change xFind to searchText
Signature

Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)

"Nigel"
wrote in message
Hi All
I wish to pass a worksheet codename to function.  How do I do this?
So far......this fails to pass the codename shAIF to the function
Sub Test
  MsgBox FindReport(shAIF, "New Report")
End Sub

Function FindReport(searchSh as Worksheet, searchText as String) as Long
FindReport = 0
Dim c
With xSh
   Set c = .Cells.Find(xFind, LookIn:=xlValues)
   If Not c Is Nothing Then
     FindReport = c.address.Row
   End If
End With
End Function
--
Regards,
Nigel
nigelnospam@9sw.co.uk

Nigel - 10 Dec 2007 11:42 GMT
Yes it was, it now works as required. Cheers

Signature

Regards,
Nigel
nigelnospam@9sw.co.uk

> Must be one of those days <g>...
> Change With xSh to With searchSh
> Change xFind to searchText
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.