Add/Insert Sheet Named Off Cell
Oct 6, 2006I am trying to get VBA to insert a new sheet and have it be renamed or just named by data that is in a certain cell. My attempt:
sheets.add.name = range("A1")
I am trying to get VBA to insert a new sheet and have it be renamed or just named by data that is in a certain cell. My attempt:
sheets.add.name = range("A1")
Sub AddSheet()
Dim strName As String
Dim oSHeet As Object
Dim intNumSheets As Integer
strName = Range("A1")
On Error Resume Next
If Sheets(strName) Is Nothing Then
Sheets.Add().Name = strName
If Sheets(strName) Is Nothing Then Goto NonValidName
Else
MsgBox "Sheet: " & strName & " already exists"
End If
On Error Goto 0.....................
However once the code has run it then deletes the content of A1, is there a way to stop it doing this as I would like the name left there.
I need a button to delete a sheet and the sheet to be deleted needs to come from a cell. For example: Active sheet is sheet 1. User selects the name "sheet 5" within cell B10 via data validation from cells E1:E9. Then the user clicks the button and that sheet is deleted. The data validation is a list of every sheet name except sheet 1. If possible, there is a sheet labeled "0" and I cant have that sheet deleted or it will screw up all my formulas if that's too difficult I can work with the data validation to keep a zero from showing up.
View 3 Replies View Relatedtry to insert sheet name in a cell but without luck.
there is anyway to do this 'simple' operation?
I have read post re this question but have not been able to answer my problem. I get the error message 'Application defined or object defined error' when running the code below. I should indicate the range counter currently indicated about 6,200 rows that this code will work on and the individual range names in the list of 6,200 rows are spread over at least 20 worksheets.
The code appears to be running but after some time it stops on the line of code 'Range(Cells(i, 1).Value) = Cells(i, 2)'.
Sub PopulateWithImportData()
Dim counter As Integer
counter = Sheets("Imported Data").Range("Counter")
Application. ScreenUpdating = False
Application.Calculation = xlCalculationManual
Worksheets("imported data").Select
Range("a1").Select
i = 1
Do Until i = counter
Range(Cells(i, 1).Value) = Cells(i, 2)
i = i + 1
Loop
Trying to get this short piece of code to work. I'm trying to show the formula in the cell not just return the result.
[Code] ......
Why this isn't working ?
On the first row of a spreadsheet template is a <hidden> contiguous series of conditionally formatted cells (range name "stdRow" =production!$1:$1), with formulas, that I want a user to be able to easily insert at whatever row they might be in a worksheet.
If, for example, the user is at D24, then clicks the [InsertRow] button that I have positioned at the top of the worksheet (in a fixed pane), I want the attached macro to insert an instance of "stdRow" directly underneath the user position (at row 25, in this case). The use's position should still be at D24 when the macro finishes. If the user clicks the button multiple times, multiple rows should be inserted (again, without changing the user's position).
This is what I have tried so far:
I have a workbook with single sheet called Fronpage. I want to insert a new sheet and rename the sheet based on the character value user specified in R1C1 in the Frontpage, and also would like the new sheet to be the last sheet in the workbook. I have tried to use DDE, and also Macro recording to do it. It didnt work out. Can anyone have any code to do it ?
View 2 Replies View RelatedI would like to create a macro that could archive entries from one sheet and insert them in another. I created one but the problem is that the entry has to be the same row each time.
Example:
Sheet 1 – is current jobs and sheet 2 is old jobs.
My macro moves an entry from Row A-5 of Sheet 1 and moves it to the top of Sheet 2.
I would like to be able to scroll through each entry select it and have it moved to the top of the Old Jobs sheet.
I am trying to put a SUMIF formula at the bottom of the data. Doing it manually is fine, but I want some vba to automate it, and my vba doesnt work.
Sub balance()
'adds journal line so journal balances in each month
Dim Rga As Range
Dim Rgb As Range
Dim Rgc As Range
Dim Rgd As Range
Dim Rge As Range
Dim Rgf As Range
This code just inserts text into the formula, rather than the range of cells.
I have the following code to execute a connection to a DB and return the result of the SQL statement. I have a variable in the statement that I want to be able to change from user input in a single cell. Unfortunately I am unable to get this to work.
Here is my code
cell_value = Sheets("some sheet").Range("P8")
Application.ScreenUpdating = False
Sheets("some sheet").Cells.Clear
Set rs = New ADODB.Recordset
[Code] ........
This fails and gives me a debug error, however if I declare the condition I want the code executes fine. This would mean having to update the code every time the condition changed or putting the whole query in a cell on the sheet which I do not want to do.
I'm trying to create a macro that when run, scans Row 12 (only after column E), Finds the first empty cell, then inserts the cell value from Sheet4 CellE8. Then the hard bit begins. I need it to insert cell info in all the cells below it, from different locations...
For example
A
B
C
D
[Code].....
In the above sheet, I need it to go to cell D2 and insert the values from Sheet4 CellE8, Then proceed to D3 and insert data from Sheet3 D4, then to cell D5 and insert data from Sheet1 A7, etc etc
I dont mind doing each cell individually, but they will always be in the same column (and row 2 "Value" will always be the one that determines the next empty column).
Is there any way (in vba code) to unhide the sheet of a given named range?
If would come before the following line of code whee CurReference is already defined
Application.Goto Reference:=CurReference
How do i change the below code to not reference a named sheet but the active sheet.
In case you need it i'm trying to sort columns A:CQ on row 2 smallest to largest from left to right.
Code:
Sub Sort_Left_Right()
' Sort_Left_Right Macro
Columns("A:CQ").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A2:CQ2") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
[Code ..........
see attached workbook. I want VBA to insert an index/match forumla on sheet 1 to lookup a value from sheet 2. I don't want it to specify a range though. I want VBA to look to see if there is data above and to the left of the cell and if it is true insert the index/match formula. Then it won't matter what row or column I put the headings in.
View 2 Replies View Related I have a master data sheet with four columns, A, B, C and D
Column A has the primary data and B,C,D has dependent data values;
So when I insert a new cell in Column A with cells Shift Down, I want mandatorily new cells to be inserted in the same row in col B, C and D as well so that data integrity is maintained;
Why is Excel so back-***wards on this? Is there a VBA solution to having a new sheet inserted after, not before, the current sheet that can be attached to an icon?
View 3 Replies View RelatedI am trying to use a named range on a different sheet in the same workbook to which the named range is on.
I have a named range on sheet2 called "Letters" and comprises of cells D20-D25 .
I am trying to call this range on Sheet1 at A1-A6 , so in A1 to A6 I simply have "=Letters" (No quote marks) , but I simply get "#VALUE!" (No Quote Marks), If I then extend the selected cell down to A25 the "Letters" will appear in A20-A25
whereas if I put the same "=Letters" in Sheet1 cell A20-A25 I will get the correct named range.
How can I get the range to show in Sheet 1 Cell A1-A6.
I want to reproduce a named range at a different location on a different sheet in the same workbook.
Let's say you have a named range, Rng1, which consists of cells A1 & A2. In vba how would you report back what, if any, named range the following cells resides:
Code] .....
here are multiple named ranges so using intersect is not feasible. Essentially, through code, I will be given a range and I need to determine if that range if part of a named range.
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).
View 2 Replies View RelatedMy vb code currently creates a new sheet via "Sheets.add". This new sheet has the default name of "sheet1" which I rename as "tempSheet". I then populate tempSheet with data, save as a CVS file and then I remove tempSheet.
If I stay in my workbook and try to execute the code again, the default name of the sheet it now creates is "sheet2" and not "sheet1" - this is a problem becuase my code is trying to rename "sheet1" "tempSheet" and of course it cant.
I just named a range on a sheet and would like to paste that range on a different worksheet within the same workbook. I can't figure out how to refer to the range. I've tried several different variations so far. Example below:
ActiveWorkbook.ActiveSheet.Names.Add Name:="RawSectorData", RefersToR1C1:="=R6C1:R29C11"
'Add new sheet and paste data
ActiveSheet.Name = "Raw_data_Sector_Summary"
ActiveWorkbook.Sheets.Add.Name = "RawData"
Range("A1").Formula = "=RawData!(RawSectorData)"
With VBA I need to add a rectangle to a sheet and have the shape named. They usually start out as "Rectangle 1", but I would like to set the name with the code.
View 9 Replies View RelatedMost of the methods used for returning the sheet name are quite cumbersome. "=MID(CELL("filename",A1), FIND("]",CELL("filename",A1))+1,256)" takes up a lot of space in a larger formula.
Is it possible, please, to create a Name which returns the sheet name? For example I could write "=ThisSheet" and it would return the name of the sheet.
Of course I could resort to a UDF, but I wondered if it could be done directly in Excel.
When I try to insert the formula "=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)" into a Name, Excel helpfully converts A1 to "'Sheet1'!A1". So "=ThisSheet" in Sheet2 returns "Sheet1".
If I make the sheet name part of the Name, as in "'Sheet1'!ThisSheet, it works OK, but has to be added for each new sheet (though it works if an old sheet is copied).
I have a named range on one sheet, and I want to show this as a reference on other sheets. I thought this would be simple, but maybe it's just not the way named ranges are used.
Attached is a sample spreadsheet. First tab shows the table defined; in practice it would be much larger. Second tab shows how I want it to appear. I see that I can do this by copying each cell reference. But what would be nice is to simply say "Put the named range block of cells right here."
I have a challenge I'm trying to surmount. I have an excel sheet in which I want to be able to select Zone codes from a drop down, click on a link "search" which takes me to a place in the document that has been named according to the Zone code i pick in the drop-down. I want to achieve this using only formulas as i'm distributing the file to a wide audience who are not versed enough with computers to know how to enable macros.
View 3 Replies View RelatedHow can i find if a named range exists in a sheet using VBA?
E.g.: I have a named range called test that houses 4 numbers in four cells. Using
Code:
Dim rtest As Range
Set rtest = Worksheets("sheet1").Range("test")
.
.
.
.
rFoundCell = _
Cells.Find(What:=rtest, After:=Range("a1"), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:= _
xlByRows, SearchDirection:=xlNext, MatchCase:=False)
Won't work. Run - time error 91 occurs.
I want a Macro to take a sheet (same named sheet) from several workbooks in one folder into a new workbook and paste each in one sheet in this new workbook. i want to rename the sheets in the new workbook based on the value in cell D2 ( i can manage that
How can i manage that by simple opening the folder or do i need to open all those workbook manually for that to be done.
is there a way to have the same named range cover a range of cells regardless of which sheet you are on? They seem to want to default to the page you are on. I want to make some VBA subroutines that will go over each sheet, and perform the same functions on each sheet. All sheets have the same format, but different data. I guess worst case scenario I can just break down and use multiple workbooks, but this seems a little less desirable. Should I be dividing this into seperate posts?
View 3 Replies View RelatedAt work I have different sheets in a workbook labeled Saturday-Friday. I have a macros set up to print other sheets in the workbook, however I only need to print the current day. Is it possible to setup a macros to print only the day of the week? I have searched and searched.
View 3 Replies View Related