I searched a few times for the answer to my problem, using different search terms, but I've come up somewhat empty (this *might* be because I'm not up-to- speed with Excel's terminology?). Anyway, my problem is this: I have a workbook which is designed to track various data for a corporate training course ( sheets for attendance, grades, tool logins, etc). After all of these are sheets numbered 1-25 (we never have more than 25 students in a class, but usually around 20). The numbered sheets correspond to the student's number in the on the class list sheet (so, the first student would have personal "report card" information on sheet 1; the eleventh student in the class list would have their information on sheet 11, etc).
What I would like to do is have some way of putting a button on the class list sheet which would look at student list and rename the sheets to correspond to the student names. For example, if the fifth student listed was 'John Doe', it would rename his personal sheet ('5') to 'John Doe'. Obviously, I would need to do it for all of the students, and IDEALLY it would then get rid of any numbered sheets which are not used (having 21 students would only rename the first 21 sheets, but then hide sheets 22, 23, 24, and 25).
I have a workbook with multiple tabs. On sheet one a person chooses a date to initialise a formula. That date is then copied to sheet two and placed in cell D5. The date is projected out for two weeks and then the next fornight starts on sheet three and so on. The start date for each new fortnight appears in cell D5 of each sheet. I want that information to be the name of the tab for sheet two, three etc. I have put this code into the "This Workbook" section:
Private Sub Worksheet_Change(ByVal Target As Range)
' Renames all worksheet tabs with each worksheet's cell A1 contents. 'If cell A1 has no content, then that tab is not renamed.
For i = 1 To Sheets.Count If Worksheets(i).Range("$D$4").Value "" Then Sheets(i).Name = Worksheets(i).Range("$D$4").Value End If Next End Sub
I have also tried:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$4" Then ActiveSheet.Name = Left(Target.Value, 10) End Sub
I then go back into sheet one and change the date and nothing happens. I seem to be missing something. Can anyone please help?
Is there a method by which I can prevent a user from renaming a worksheet by doubleclicking on the sheet tab ? Please note that I do not wish to use workbook protect method.
I am looking for a macro to rename tabs based on information in A1 on each tab. The thing that is causing me issues is the cell A1 has a formula in it and it changes on a daily basis with days of the week but the tab only updates when i double click A1 and press enter.
I pull an excel sheet from a database each day that gives me sales data for different products sold. The way the spreadsheet comes from the system, the first tab is named "Document Map" and lists all of the products, and each product then has its own tab but they're generically named (Sheet1, Sheet2, etc.). The name of the product is always in cell T8, but the name itself is only the last 8 characters of that cell.
What I'm hoping to accomplish with a macro is two things:
1) Retrieve the last 8 characters from T8 in each tab, and name the tab with those characters (same effect as the formula "=right(T8,8)"). 2) Ensure that this only occurs on tabs with the word "Sheet" in the beginning. Depending on the day, there could be any number of products and they each get their own tab, so I was hoping to be able to get the macro to only work on sheets where the first 5 characters are "Sheet" regardless of the number after that.
Is there a way to add a new sheet as soon as click on button on excel sheet with the name i give.
ex : there should be a button on the Index page , as soon as i click on button it should add a new sheet and i should be able to provide a name in the index page for that sheet.
Is there any way, through VBA code, to click a button on a sheet in another workbook. This button has a macro assigned to it. What I need to be done is this :- the workbook which has the button is open. The code should click the button on a specific sheet. On this action, the macro assigned to the button should get called.
I could just call the macro which is assigned to the button in this code. But the requirement is that the button click operation should call the macro.
I have found that one can do quite a lot with the code, but this seems to be one a whole different level. I came across a possible solution in the below mentioned link but it doesnt seem to be working for me. [URL]
I need to get the data from the sheet 1 added to the sheet 2 by clicking on the ADD DATA button in the sheet 1. The sheet 1 will be filled in multiple times like a form by the users, so once the data is added to the sheet 2 I would like sheet 1 to have no data filled in the column to the right. The data will be only filled in the right column, thus the left column should not be copied to the sheet 2.
I have a user form where the user selects items from combo boxes or enters information into text boxes. When the user clicks the command button the selections are written to the spreadsheet along with an auto number. I am trying to add an auto date in as well and have been playing with using the NOW() function but I am having some problems calling it. Here is the Private Sub cmbtnAdd_Click() Dim NewRow As String Dim NewNumber As String With Worksheets("Sheet1") NewRow = .Range("A65536").End(xlUp).Row + 1 NewNumber = .Cells(NewRow - 1, 1).Value + 1 .Cells(NewRow, 1).Value = NewNumber .Cells(NewRow, 2).Value = Me.ComboBox2.Value .Cells(NewRow, 3).Value = Me.TextBox1.Value .Cells(NewRow, 4).Value = Me.TextBox2.Value End With End Sub
I was trying something like this:
Dim NewDate As Date NewDate = DateSerial(Year(dDate), Month(dDate), Day(dDate)) .Cells(NewRow,5).Value = New Date
Running into this issue of "transworksheet macros"
I have a master "update" commandbutton on sheet 1. I have two sub "update" buttons on sheet 2 and 3 respectively.
What I would like to do is have the user click the master button, that would "click" the two sub buttons so they run their respective macros on their respective worksheets (within the same worksheet.
I have tried pasting the macro code in the master button, telling it to select the sub worksheet and then run the macro, but the marco runs itself on the master worksheet instead.
I have a spreadsheet that I enter daily totals into. The sheet is named by date. I take totals from a number of catagories from the prior day's sheet (ending totals) and enter them on the current sheet (beginning totals), then enter the current day's totals to wind up with new ending totals.
I want to generate a new sheet in the same workbook based on the date of the prior sheet, copy my formatting, and copy the data from the old ending sheet totals to the new sheet beginning totals.
1) Copies Sheet2 for each name on the list. Sheet1 has the list of names (cells A5:A10)
2) Renames each sheet with the next name on the list
3) In each of the copied sheets in cell A2=newsheetname
Sub Copy_Sheets() Dim i As Integer Dim wks As Worksheet Set wks = Sheets("Sheet1") For i = 5 To 10
[code].....
This works like a charm for this particular list. The thing is, I want to take this macro and apply it to a variable list. In one instance the list may be in cells A5:A10, and in another instance it may be in cells A5:A100. How can I update my macro so it looks for the next name in the list and stops when there is no longer a name.
I receive a workbook each day with approx 500 tabs of call data and I would like to relabel all the tabs with the user names. The user names are in a merged range "A7:M7". I'm having difficulty getting the following script to rename the sheets. Currently the values in "A7:M7" look like "User: ADAM ENGEMANN-558".
I am trying to delete each occurrence of "User: " while naming the sheets as well as removing the merged range before doing so that the names are in A7 only. The sheet names should look like "ADAM ENGEMANN-558", or, ideally just "ADAM ENGEMANN". For some reason my code will not modify the cells. (See attached example)
This works if I manually unmerge the cells before running and remove the ":".
VB: Sub RenameSheets2() Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets If ws.Range("A7").Value <> "" Then
[Code] .....
This his how I modified it but it doesn't work on the supplied sheets. Please note that if I manually insert some blank sheets into my workbook and merge the cells etc it does work. There seems to be something odd going on with the sheets they are giving me. (they aren't protected)
VB: Sub RenameSheets2() Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets If ws.Range("A7").Value <> "" Then
I tried adding the following to remove the merged ranges and remove 'User: ' from the names Range("A7:M7").Select With Selection .WrapText = False .MergeCells = False
I am having trouble creating a macro that renames all excel sheets using cells on Sheet1.
See attached, I want to rename all excel sheets (renamed as "1", "2", "3"....."50") as "9999", "10000", "10001"..."10045", found in Sheet1, renamed as "Base". I will change the cell values everyday (range Base!A5 to Base!50) - and will rename all the sheets again.
I have 4 employees by 52 weeks tabs in a workbook. The first 4 tabs are as follows:
Pat 010810 Dan 010810 Max 010810 Ann 010810
I would like some method (maybe VBA?) that I can rename the subsequent tabs, having the same names but the date with a seven day increment; i.e.the next tab would show Ann 011510, etc.
I don't know how to code, but can get to the VBA page and copy really well.
I have a workbook that pulls in data from other sources and contains 15 linked sheets. The data changes when different criteria is selected in the first sheet. The first 2 sheets are summary sheets and the tabs are named correctly.
I would like to be able to rename the remaining 13 tabs using labels found in the cells in the first sheet. These tabs should update or change when the first sheet is manually recalculated (F9).
I have used ActiveSheet.Name=Range("A1") but it doesn't apply in this case. Is there a macro that could run with something like Sheet1.Name=Range("A1"), Sheet2.Name=Range("A2"), Sheet3.Name=Range("A3"), etc.... or maybe something in each sheet that would change the name of the tab to a specific name off sheet 1 when the whole workbook is recalculated?
Could you help with an onerous task that I must complete every Quarter.
I have a spreadsheet with multiple tabs.
The first 3 Tabs are Calculation sheets and do not need to be re-named.
All the preceeding sheets each need to be renamed to the days of the month (British Format), skiping Sundays.
i.e Tab 4 should be renamed 010409, Tab 5 should be renamed 020409, Tab 6 should be renamed 030409, Tab 7 should be renamed 040409, Tab 8 should be renamed 060409 and Tab 9 should be renamed 070409 etc etc ...
Extra - Also if possible on each sheet could the Tab date be placed into Cell A4 (eg. 010409) and also the Day number (eg. 01) (Starting from 01 on 010409, 02 on 020409, 03 on 030409, 04 on 040409, 05 on 060409, 06 on 070409 etc etc ...) into Cell A6.
I am pulling my hair out in frustration with this right now. I have a .csv file that I am attempting to run a macro on. I will need to move between tabs, and want to rename a tab to remove the date as it is not consistent in format. I have tried numerous ways, and I don't get an error message, but the tab is not renamed either. Code I have tried is below ....
I'd like to split up the rows in a worksheet based on the values in one of the columns. Also, I'd like the sheets to be named after the values in the column. I have attached example excel sheets to explain this better. I think the vlookup and Sheets.Add and ActiveSheet.Name formulas can be used but I'm not quite sure how to put them together. The actual data has about 20 columns and about 500 rows.
I have a master sheet where users can change the name of 20 different sheets in the workbook by changing a cell value on the master sheet. Here is the code:
Code: Private Sub Worksheet_Change(ByVal Target As Range) Dim rCell As Range If Target.Cells.Count > 1 Then Exit Sub
[Code]....
The next step which I am having issues with is hiding the sheets. I want all sheets in the workbook to be hidden except for the master. I only want the other sheets to be visble if the user inputs a name on the master sheet.
So if the cell contents on the master sheet, say "B9", is blank, the sheet in the workbook that corresponds to that cell will remain hidden. If the user inputs anything, say "Sheet1", in cell "B9" on the master sheet, I want that sheet to become unhidden and to be named "Sheet1"
There is a folder in a shared location which many people use at work. Within this folder, I have an excel document with all current stock (called "Current Stock"). There will never be more than 20 items in current stock. There is also other documents within this folder which relate to lots of other things, Interest, Deals etc.
What I want to do is every time a new item is added to the "Current Stock" document, a tab is created with that Item name within all the other documents.
I've been working on a macro that makes copies of a template sheet based on a table in my Opps sheet. If column B isn't empty, make a copy of the template sheet, rename it to Opps column A, and then hyperlink column A's current A.row to the newly copied and renamed sheet.
I'm not sure what is wrong exactly, it keeps making duplicate Template(x) and stops renaming them, and the hyperlinks are not working. -This is my first go at VBA hyperlinks to internal workbook sheets
I have a worksheet with like lots of color coded tabs and the tabs increase everyday. The tabs are categorized based on 6 colors. I created a first tab in order to give how many tabs i have another each color. Is that doable in excel. Do I need a macro for this.
All I want is each time i open the excel sheet the first tab will be automatically updated with how many tabs I have under each color instead of me counting the tabs.
I have customised the right click menu's for this spreadsheet and currently it is all hard coded. I was wondering if it is possible to dynamically modify the right click menu? The code currently has right click buttons for each staff member, and when clicked other actions are performed. I have added a "Staff" sheet and was wondering if there is a way the code can reference that sheet and create the list based on those entries for example, when new staff join or other staff leave?
I'm sure that there is a better way to go about this, perhaps a For... Next loop but I don't know enough about it. In the mean time, I will keep bashing away at it in hopes of a brainwave... it's a Friday before a long weekend and I think my brain has decided its holiday time.
Option Explicit Private Sub Workbook_Deactivate() On Error Resume Next With Application . CommandBars("Cell").Controls("Add Nick").Delete .CommandBars("Cell").Controls("Add Toby").Delete .CommandBars("Cell").Controls("Add Ben").Delete .CommandBars("Cell").Controls("Add Matt").Delete .CommandBars("Cell").Controls("Add Zoe").Delete .CommandBars("Cell").Controls("Add Anne").Delete .CommandBars("Cell").Controls("Add Craig").Delete .CommandBars("Cell").Controls("Add Unknown (1)").Delete .CommandBars("Cell").Controls("Add Unknown (2)").Delete .CommandBars("Cell").Controls("Remove").Delete End With With Application .CommandBars("Cell").Controls("Cut").Visible = True .CommandBars("Cell").Controls("Copy").Visible = True...............................
I'm having a problem with some of the command buttons in a dynamic spread sheet that I am creating. I add the command button to the page and it has the name "commandbutton1" I would like to rename it to something more meaningful. When I rename the button and then loop through the buttons on the page and try to match the name it doesn't work. I put in a message box to see what names it is pulling back and it for some reason keeps pulling back "commandbutton1" even after I updated the name property.