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 / February 2007

Tip: Looking for answers? Try searching our database.

VBA-generated Hyperlink problem

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Notawahoo - 13 Feb 2007 19:05 GMT
Thanks to this group (Brian Wilson) many years ago, I have some VBA
code which goes through a multi-tab workbook and creates a list of
hyperlinks on the first sheet which go directly to any of the tabs.
There are about 20 tabs, so you can't see them all at once, and the
hyperlinking is really useful.

My problem is that if a tab name has any special characters or spaces
in it, then the vba-generated hyperlink doesn't work.  If I manually
go into "edit hyperlink" and click on the tab name, then it works
fine.

The hyperlink to tab DOCS works fine, and the one to tab ADM-SRC does
not work -- it says "reference is not valid".

I'm using Excel 2003.

Here's the vba code:

Sub AddHyperlinks()
Dim ScreenTipMsg As String
Dim WhereToGo As String

Range("A7").Activate
KeepGoing = "Y"

Do While KeepGoing = "Y"

   iRow = Selection.Row
   iStartCol = "A"
   iEndCol = "B"

   With Worksheets(1)
   ScreenTipMsg = "Go To " & ActiveCell.Value & " Sheet"
   WhereToGo = ActiveCell.Value & "!A1"
   Range(Cells(iRow, iStartCol), Cells(iRow, iEndCol)).Select

   .Hyperlinks.Add Anchor:=Selection, Address:="", _
      SubAddress:=WhereToGo, ScreenTip:=ScreenTipMsg
   End With

   ActiveCell.Offset(1, 0).Select
   If ActiveCell.Value < " " Then
       KeepGoing = "N"
   End If

   Loop

End Sub

Thanks in advance for any help you can offer!

Nancy
Tom Ogilvy - 13 Feb 2007 20:04 GMT
try changing

WhereToGo = ActiveCell.Value & "!A1"

to

WhereToGo = "'" & ActiveCell.Value  & "'!A1"
Lightly tested, but this worked for me:

Sub AddHyperlinks()
Dim ScreenTipMsg As String
Dim WhereToGo As String

Range("A7").Activate
KeepGoing = "Y"

Do While KeepGoing = "Y"

   iRow = Selection.Row
   iStartCol = "A"
   iEndCol = "B"

   With Worksheets(1)

   ScreenTipMsg = "Go To " & ActiveCell.Value & " Sheet"
   If ActiveCell.Value Like "*[!A-Za-z0-9]*" Then
     WhereToGo = "'" & ActiveCell.Value & "'!A1"
   Else
     WhereToGo = ActiveCell.Value & "!A1"
   End If
   Range(Cells(iRow, iStartCol), Cells(iRow, iEndCol)).Select

   .Hyperlinks.Add Anchor:=Selection, Address:="", _
      SubAddress:=WhereToGo, ScreenTip:=ScreenTipMsg
   End With

   ActiveCell.Offset(1, 0).Select
   If ActiveCell.Value < " " Then
       KeepGoing = "N"
   End If

   Loop

End Sub

Signature

Regards,
Tom Ogilvy

> Thanks to this group (Brian Wilson) many years ago, I have some VBA
> code which goes through a multi-tab workbook and creates a list of
[quoted text clipped - 48 lines]
>
> Nancy
Notawahoo - 16 Feb 2007 14:36 GMT
> try changing
>
[quoted text clipped - 99 lines]
>
> - Show quoted text -

Tom,
I tried adding the quote in front of the tab name, as yous suggested.
It gave me the same "reference is not valid".  Then I added a quote on
the end, and still have the same problem.  I guess I'll just make all
my tab names with only letters and numbers!

Thanks for your answer,

Nancy
Notawahoo - 16 Feb 2007 15:00 GMT
> try changing
>
[quoted text clipped - 99 lines]
>
> - Show quoted text -

Tom
It's me again.  Your solution DID work.  I missed the quote ending the
tab name in your replacement line.  I should have just copied-and-
pasted.

Thanks again!

Nancy
Tom Ogilvy - 17 Feb 2007 03:49 GMT
All I can do is give you a tested solution <g>  (although as I said, lightly
tested)

Note that a sheet name that does not need single quotes does not seem to
work with them from my testing - thus the extra code to test and not apply
them when not needed.

Signature

Regards,
Tom Ogilvy

>> try changing
>>
[quoted text clipped - 108 lines]
>
> Nancy
 
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.