I have the following macro, which is assigned to ctrl+shift+h to allow users to make a list and to insert hyperlinks to other sheets that have more details than the list can show:
Code: Sub linker() Dim strDocument As String Dim strSheet As String Dim strAddress As String Dim strLink As String
I was surprised to see that even if the contents of the active cell is not a valid sheet name in the target document, the link is still inserted without error. If the link is subsequently clicked, the target document will open and an "invalid reference" error box will appear.
Is there any way to check whether the contents of the cell constitutes a valid sheet name in the target workbook at the point at which the hyperlink is created, without opening up the target document?
I attach an example worksheet with the code I have thus far.
In my workbook I have other sheets, one of which changes and updates a specific one each time a new client's data is entered on said other sheet. Because I want to save the specific client's data and not lose it when another client's stuff is entered on this other sheet, I copy the sheet where the data is summarised (I called this sheet "Sheet to Copy From") to a newly inserted sheet and use Paste Special, Values Only to change all functions /f ormulae / Links ect to values.
I then change the name of the sheet to the name of the client.
I then use this sheet name / cell value to polulate a range on another sheet (Next Empty Cell) as a Hyperlink to the newly created sheet above. This sheet I called "Table of Contents".
how to code the hyperlink. Using Macro Recorder uses the specific case's names, but the Tab name to be used as Hyperlink value will always be the name of a new client,
I believe I have 99% of what I need. The code below has one bug. (See just the underlined text for a very quick overview. The rest is detail.)
My goal is to generate a TOC that: 1) has the VBA run from my Personal Workbook. 2) can be run in any worksheet of any open workbook. 3) can be run in a worksheet of any name. 4) will insert itself at the currently active cell. 5) has entries hyperlinking to the referenced worksheets - of any name.
Right now, I'm stuck with the last point. The macro below will generate the TOC at the currently active cell. The TOC will be hyperlinks to the referenced worksheets.
However, if the referenced worksheet contains a space, dash, or other special character then the generated hyperlink is broken. For example, if the referenced worksheet is "sheet1" then the hyperlink generated works just fine. However, if the referenced worksheet is "sheet-1" then the generated hyperlink doesn't work.
Sub IndexList() Dim objSheet As Object Dim intRow As Integer Dim strCol As Integer
Set objSheet = Excel.Sheets intRow = ActiveCell.Row 'Start writing in active row strCol = ActiveCell.Column 'Start writing in active column
For Each objSheet In ActiveWorkbook.Sheets Cells(intRow, strCol).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ objSheet.Name & "!A1", TextToDisplay:=objSheet.Name intRow = intRow + 1 Next End Sub
1) I'm relatively new to arrays, but what I need to do is generate a list of file names and the sheets within each one. I would like to use an array for this, but since I don't have much experience.... well....that's why I'm here. Can someone point me in the right direction?
2) And the second part of this.... I was planning on using the FileSystemObject to determine the files in a selected folder and loop through that list of files, opening each one and harvesting the required info (file name and all sheet names). Should I use the FSO or is there something built into Excel that might be better (and also limit the number of dependencies for this little "project" of mine).
I have workbook that has several sheets within the workbook that are set up identical. Each of the sheets in the workbook are for a specific company.
As of right now I have been adding a sheet to the workbook that is an overview for what is in each sheet (the individual companies). Currently I am doing the formatting of the heading and column names manually and I pull the data from each sheet with a VLookup. I have been trying to enhance my VBA skills with coding something that will fill in the appropriate cells from worksheet to worksheet.
What I am trying to do is to populate an overview sheet with cells C24, C25, and B36 being static on each row per sheet. Then each row will be populated with cells C(36, 59, 70, 81), D(36, 59, 70, 81), F(36, 59, 70, 81), G, and H(36, 59, 70, 81). The overview sheet will have the diagram below in a ru
I have an excel sheet which at the moment takes it name from a cell on that sheet, but what I would like to reverse if possible. How can I get the sheet to name itself from a cell. I'm sure I've been on a web page in the past with this info on it, does anyone have the link?
I’ve had a look through the forum and on some of the guides/FAQ but thanks to my ineptitude I have been unable to adapt any of the examples to my specific situation.
What I’m after is this: I need to create a summary sheet for a work book with a variable number of tabs. All I need the summary sheet to do is to make a table of the name of the tab and then cell A17. How would I go about doing this and is it possible to save this macro to my machine/all workbooks instead of just the one?
In Column A row 4 of sheet1 I have an account name, for example Sonic, and I have a sheet named the account name, Sonic. In Column B row 4, of sheet1, I would like to return the value in Column B row 3 in sheet named Sonic, or the account named sheet.
I have about 50 different account names along Column A in sheet1, and the same account name sheets opened in the same workbook. Is there a good formula or vba code that will work for all the values in Column A of sheet1 to look for the same named sheet and return the values off of that? Note: on the account sheets in Column A it says ‘Account’ for all of them.. this wasn’t a mistype
I wrote the following macro to create hyperlinked Table of contents on the first sheet of a workbook. It works great unless the sheet name has a space in it, i.e. "new sheet" as opposed to "newsheet". Any way to get it to work for either/ or?
Originally Posted by Code
Sub Hyperlink() ' ' Hyperlink Macro ' Macro recorded 2/26/2007 by bpillsbu '
' Dim ShName As String Dim ShCt, N As Integer Dim Sht As Worksheet
ShCt = ThisWorkbook.Worksheets.Count Range("A5").Select N = 1
I have searched the forum and I have seem quite a few referrences to this question but can't find exactly what I'm looking for. I'm using the first sheet in the worksbook as a splash screen which has lots of button macros on there. I want to add one more which will make a list on this sheet from cell b25 down with all the sheet names in the workbook which are also clickable hyperlinks. Does anyone have any idea how to do this, so far I can make a list of the names..
Sub Index() Dim ws As Worksheet Dim I As Long
I = 25 For Each ws In Worksheets If ws.Name "Actions" And ws.Name "summary" And ws.Name "Archive" Then Worksheets("Summary").Range("B" & I) = ws.Name I = I + 1 End If Next ws
But have no idea how to make these names clickable which will make the relevant sheet active. If it helps the sheet name is also in cell A2 of every sheet.
I have done a formula for Abbott as shown below however I actually have about 50 sheets with names. I have the names listed in column A. Is there a formula that instead of typing Abbott as shown I can use the cell in column A to generate a code ?
The Board looks full of some interesting issues today.
I'm working on a workbook that hides and unhides a lot of columns depending on the month the user has selected. No problems here.
The sheets are named regionally, ie National 2008, California 2008 etc. The user is able to select the month and the year from separate combo boxes.
So when 2009 comes around I will need to rewrite many lines of code to point the VBA to the new worksheet names like National 2009, California 2009. My question is, is there a way to reference either variable worksheet names in the VBA or some other manner in which to write the code so I don't need to rewrite every year change?
I currently reference the sheets something like Sheets ("National 2008").Range("H:H").EntireColumn.Hidden=True
I have a spreadsheet with sheet numbers that are controlled by the tab name. Is it possible to limit how people name the tab? For example, my sheet numbering must be: 101, 102, etc. Thus the tab would of course be 101, 102, etc.
I have been using the code below for a form. But now I need to change the sheet name to have spaces. But when I do. I comes up with the Run Time 1004 error on the “Ctrl.Text = Range(Ctrl.Tag).Text '*** “ line.
Why is it that this line is not allowing me to have spaces?
Private Sub Load_Controls() Dim Ctrl As Control For Each Ctrl In UserForm1.Controls If Ctrl.Tag "" Then Ctrl.Text = Range(Ctrl.Tag).Text '*** End If Next Ctrl End Sub
I want to add to it so that if the "Name" entered into the target cell is longer then the maximum allowd length it inserts an abreviation of the words (and increments where nessisary)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) On Error GoTo StandardName If Target.Address = "$B$4" Then Sh.Name = Target Exit Sub StandardName: Sh.Name = "Sheet1" End Sub
I have a named range, "DDNames", on a master data input sheet and in that range are names of donors. In the same workbook I have sheets that provide a quarterly summary of each of the donors. I have named the sheets "Smry_Miller", as an example. Miller's name is in the named range, as well as others, for the format for each summary sheet is Smry_NAME.
I have a few things I want to do on each sheet so I am working on a FOR loop so I can make my code easily scale-able for when we get new donors or lose one. I get a Run-time error: 9 on my code and I'm just down right stumped.
VB: Sub MakingLoop() Dim arrAllDD As Variant Dim i As Long Dim varDDNum As Long varDDNum = Range("DDNames").Count
The debug highlights the line "Sheets("Smry_" & arrAllDD(i)).Range("G1") = arrAllDD(i)"
I'm looking to pull names from a database to a particular sheet based on what info is displayed in the database. I have six names listed in the database with a league type and position. I have three different tabs at the bottom for where the info is supposed to pull depending on the player type.
For example, I want all six players to pull to the 'Mixed' tab and populate the appropriate area based on their position. Next I'd like the 3 players with 'AL' for their league type to populate only on the AL tab and likewise for the players with 'NL' for the NL tab. Not only do I need the players to pull to the appropriate tab but i also want them to populate in the right position within that tab.
I have a namd sheet for everyday of the year in a workbook, so jan1 jan2 jan3 etc. I have a stats page which brings together certain pertinent data from those pages, so a formula on the stats page might look like this =sum('jan1'!$m$25:$m$900). What I would like to do is to name each day - jan1 jan2 etc as a named range perhaps date1 date2 etc so that the above formula would then look like =sum(date1!$m$25:$m$900).