Copying Excel sheets with Hyperliknks. Without Sheets reference - excel

I have hyperlinks in an big excel sheet that point to certain cells. (e.g. Link to cell A1, to AR50 etc..just to jump to different positions in the sheet)
When duplicate/copying these sheets, the reference (e. A1) is changed to "sheetname!A1".
So i have to change all references in the duplicated sheet.
has anyone an idea how to copy it just without the sheets reference??
Thank you

I don't think you can do this when you're inserting hyperlinks by using the "Insert Hyperlink dialog box". However, it can be accomplished by using the HYPERLINK formula. E.g. enter =HYPERLINK("#A100","Link") in the cell to establish a link. You'll see a clickable text "Link" (you can change this text to whatever you like, of course). Clicking the cell will route you to A100 in your current sheet. Once copied, the same cell in the copy will route you to A100 in this new sheet.

If you have used the Insert -> Link feature to create the links then you will need to use a VBA routine, such as the following
Sub updateLinks()
Const srcSheet As String = "SheetOne"
Const copySheet As String = "Sheet Two"
Dim link As Hyperlink
For Each link In Worksheets(copySheet).Hyperlinks
If InStr(1, link.SubAddress, srcSheet) Then
link.SubAddress = "'" & copySheet & "'!" & Split(link.SubAddress, "!")(1)
End If
Next link
End Sub
this example assumes that the tab copied had the name SheetOne, and that the copy was named Sheet Two
(if you don't know where to put this code then please see this article)

Related

Why excel delete all the pasted hyperlinks, if I later removed any hyperlink from any one of them?

I am using the below code to copy hyperlink from one cell to a range.
The hyperlinks have been pasted and working as it should,
But if I later removed any hyperlink from any one of pasted hyperlinks ,then all hyperlinks from destination cells are deleted !!
This issue happens either I have used vba (copy, paste & delete) or used merely excel.
I am using office 2016.
Sub Hyperlinks_Issue()
Range("R2").Copy Range("N2:N15")
Range("N2").Hyperlinks.Delete
End Sub
The problem has to do with the fact that Range("R2").Copy Range("N2:N15") attaches the hyperlink in R2 to the entire range of N2:N15. You can check this by inserting the following code immediately afterwards:
Debug.Print (Range("N2:N15").Hyperlinks.Count)
This returns 1, meaning the entire range only has one hyperlink (instead of 14, as you might be expecting). If then you check this:
Debug.Print (Range("N2").Hyperlinks(1).Range.Address)
You will see that it returns $N$2:$N$15. Hence, when you use Range("N2").Hyperlinks.Delete, you are simply deleting the one hyperlink that is attached to the entire range.
To avoid this, loop through all the cells in your destination range and attach the hyperlink for each cell individually. E.g.
Sub copyHyperlinks()
For Each myCell In Range("N2:N15")
Range("R2").Copy myCell
Next myCell
Debug.Print (Range("N2:N15").Hyperlinks.Count) '= 14
End Sub
Now, Range("N2").Hyperlinks.Delete will only delete the hyperlink in this particular cell.

How to Copy and Paste cell with hyperlink based on drop down values

I am looking for a Excel VBA code to select the resulting Form address on Sheet 2 from the set of States on Sheet 1, but I need to copy the cell and paste it to retain the existing hyperlink attached to Form.
The only common data is the States.
I used INDEX MATCH but it only gets the word "Link" without the hyperlink itself.
I couldn't actually Select the cell, then copy and paste it.
Sheet 1
Sheet 2
I tried but don't have any idea how. As long when I choose what's selected on Sheet2 State (e.g Sheet2 Cell D2 - Alabama), the corresponding Form Link (e.g Sheet1 Cell B3 - Link) will be selected and copied through the Macro.
Sub test2()
Dim link As Range
Set link = Range("INDEX(Sheet1!B:B,MATCH(Sheet2State,Sheet1State,0),0)))")
Set s1 = Range("D5")
link.Copy
s1.PasteSpecial
End Sub

Excel VBA : Hyperlink that fills target cell's contents with hyperlinked text

There are a lot of similar questions on here about VBA and hyperlink in excel, but nothing that I could modify to my own situation.
On one sheet I have a column of names (E:E), and on another I have a cell (D13).
What I want to do is hyperlink each cell in column (E:E) such that, when clicked, the hyperlink not only takes me to cell (D13) but also populates cell (D13) with the name that I clicked on.
So, click "John Smith" (Sheet1!E1) ---> (Sheet2!D13) = "John Smith"
First you need a tiny piece of code in a standard module to install the hyperlink in Sheet1:
Sub MakeLink()
Sheets("Sheet1").Hyperlinks.Add Anchor:=Range("E1"), Address:="", SubAddress:="Sheet2!D13", TextToDisplay:="Stuff"
End Sub
Then you need an event macro in the worksheet code area to do the content transfer:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ActiveCell.Value = Sheets("Sheet1").Range(Target.Parent.Address).Value
End Sub
I think the best solution may be to use VBA. If you're unsure on how to do that, record s macro that selects a cell in e, then goes to D13 and updates its value, then look at the code that was recorded and use those snippets to create your code. At a high level you'd want to trigger a macro on click of any cell in column E that does something like:
Dim e_value = <value of selected cell in column E>
ThisWorkbook.Sheets("name of sheet 2").Range("D13") = e.value
Application.Goto Reference:=Worksheets("Sheet2").Range("D13"), Scroll:=False
Note that the above contains pseudocode, but it should give you a general idea on how you could proceed.

VBA to Replace a Portion of a Hyperlink to Another Sheet In the Same Workbook

I am trying to get a portion of a link to another sheet within the same workbook changed through VBA.
I have a spreadsheet, where I want the user to be able to change select if they want to see "Site1" or "Site2" by changing the values in cells labeled "Change From" and "Change To".
I have a separate sheets for "Site1" and for "Site2".
So on my main sheet
if "Change from" is in F4 = "Site1"
and "Change to" is in F5 = "Site2"
I want the corresponding cells to change to reflect Site2 when I run the macro.
So far I have figured out how to change all regular references and formulas to switch to the appropriate sheet. I however, cannot get it to change the portion of the hyperlink that links to the specific sheet:
For example I need only the sheet name to change
from:
C:\Documents\test.xlsm - Site1!A1
to:
C:\Documents\test.xlsm - Site2!A1
I tried the following code but it did not work:
I also tried the solutions give here, but they only seem to change the path names, but do not let me change the sheet name.
Excel Hyperlink mass update
Any help would be greatly appreciated!
Sub test()
Dim hLink As Hyperlink
Dim wSheet As Worksheet
For Each wSheet In Worksheets
For Each hLink In wSheet.Hyperlinks
hLink.Address = Replace(hLink.Address, "Site1", "Site2")
Next hLink
Next
End Sub

Excel 2010 Hyperlinking Cells

I have two sheets in an excel document (workbook). They have the same number of cells in the same arrangement. The first sheet contains summary information and the second sheet (in the corresponding cell) contains the more detailed information.
I want to hyperlink the sheets so that, a person can click the summary cell to be brought to the detailed cell.
I know I can use the following formula to create a hyperlinks:
HYPERLINK(link_location, [friendly_name])
And (at least in Excel 2010) the "link_location" entry must be in the format "#BOOK!Cell" where the quotes must be included.
However, when you click on a cell to make a selection, the formula processes it simply as BOOK!CELL. Its possible to drag and have the other cells auto populate with the BOOK!CELL format. But then I just have a bunch of broken cells. Any advice on how to automatically populate my first sheet with the correct format?
you need to use the subaddress to link to a place in the workbook. I would run this example below which would update all links to reflect the other sheet location. Change the name of the sheets to your two sheet names.
Sub FixMyLinks()
On Error Resume Next
Dim c As Range
Dim wsSummary As Worksheet
Dim wsDetails As Worksheet
Set wsSummary = ThisWorkbook.Sheets("Sheet1")
Set wsDetails = ThisWorkbook.Sheets("Sheet2")
For Each c In wsSummary.UsedRange.Cells
wsSummary.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:=wsDetails.Name & "!" & Replace(c.Address, "$", ""), TextToDisplay:=c.Value
Next c
End Sub

Categories

Resources