Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Is is possible to automatically rename a worksheet based on the contents of a
cell? For Example: Cell A1 contains Bob Smith - I'd like the worksheet to automatically name itself Bob Smith, even if the contents of A1 change. I've done a search of the discussions here and found: =MID(CELL("filename",a1),SEARCH("]",CELL("filename",a1))+1,1024) The above example however works in reverse from what I'm looking for and copies the worksheet name to the cell. What I'd like to accomplish is copying the cell to the worksheet name if possible. |
#2
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Right click the sheet and select view code and paste in
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ActiveSheet.Name = Target.Value End If End Sub -- Regards, Peo Sjoblom "RDana" wrote in message ... Is is possible to automatically rename a worksheet based on the contents of a cell? For Example: Cell A1 contains Bob Smith - I'd like the worksheet to automatically name itself Bob Smith, even if the contents of A1 change. I've done a search of the discussions here and found: =MID(CELL("filename",a1),SEARCH("]",CELL("filename",a1))+1,1024) The above example however works in reverse from what I'm looking for and copies the worksheet name to the cell. What I'd like to accomplish is copying the cell to the worksheet name if possible. |
#3
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
Instead of using Activesheet, I'd use the sheet that owns the code. Activesheet
may not cause any trouble--until a macro runs that changes A1 on that sheet--and that sheet isn't active. In fact, I'd add a little checking (and some completely arbitrary changes, <bg): Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'one cell at a time if target.cells.count 1 then exit sub If Intersect(Target, Me.Range("A1")) Is Nothing Then exit sub 'nots and nothings confuse me! else on error resume next Me.Name = Target.Value if err.number < 0 then beep 'or msgbox "Was not renamed!" err.clear end if on error goto 0 End If End Sub ====== To the OP: Remember that this event will fire when you're typing a new value--not the result of a calculation. And if you're typing in dates, you'll want to format the date to avoid invalid worksheet names. Something like: Me.Name = Format(Target.Value, "yyyymmdd") Peo Sjoblom wrote: Right click the sheet and select view code and paste in Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ActiveSheet.Name = Target.Value End If End Sub -- Regards, Peo Sjoblom "RDana" wrote in message ... Is is possible to automatically rename a worksheet based on the contents of a cell? For Example: Cell A1 contains Bob Smith - I'd like the worksheet to automatically name itself Bob Smith, even if the contents of A1 change. I've done a search of the discussions here and found: =MID(CELL("filename",a1),SEARCH("]",CELL("filename",a1))+1,1024) The above example however works in reverse from what I'm looking for and copies the worksheet name to the cell. What I'd like to accomplish is copying the cell to the worksheet name if possible. -- Dave Peterson |
#4
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
You are such a nanny! <bg
Peo "Dave Peterson" wrote in message ... Instead of using Activesheet, I'd use the sheet that owns the code. Activesheet may not cause any trouble--until a macro runs that changes A1 on that sheet--and that sheet isn't active. In fact, I'd add a little checking (and some completely arbitrary changes, <bg): Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'one cell at a time if target.cells.count 1 then exit sub If Intersect(Target, Me.Range("A1")) Is Nothing Then exit sub 'nots and nothings confuse me! else on error resume next Me.Name = Target.Value if err.number < 0 then beep 'or msgbox "Was not renamed!" err.clear end if on error goto 0 End If End Sub ====== To the OP: Remember that this event will fire when you're typing a new value--not the result of a calculation. And if you're typing in dates, you'll want to format the date to avoid invalid worksheet names. Something like: Me.Name = Format(Target.Value, "yyyymmdd") Peo Sjoblom wrote: Right click the sheet and select view code and paste in Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ActiveSheet.Name = Target.Value End If End Sub -- Regards, Peo Sjoblom "RDana" wrote in message ... Is is possible to automatically rename a worksheet based on the contents of a cell? For Example: Cell A1 contains Bob Smith - I'd like the worksheet to automatically name itself Bob Smith, even if the contents of A1 change. I've done a search of the discussions here and found: =MID(CELL("filename",a1),SEARCH("]",CELL("filename",a1))+1,1024) The above example however works in reverse from what I'm looking for and copies the worksheet name to the cell. What I'd like to accomplish is copying the cell to the worksheet name if possible. -- Dave Peterson |
#5
![]()
Posted to microsoft.public.excel.worksheet.functions
|
|||
|
|||
![]()
I take it that nanny is something very nice in that Swedish language that you
speak! It must mean something totally different than the English word that looks the same. <hehehe Peo Sjoblom wrote: You are such a nanny! <bg Peo "Dave Peterson" wrote in message ... Instead of using Activesheet, I'd use the sheet that owns the code. Activesheet may not cause any trouble--until a macro runs that changes A1 on that sheet--and that sheet isn't active. In fact, I'd add a little checking (and some completely arbitrary changes, <bg): Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'one cell at a time if target.cells.count 1 then exit sub If Intersect(Target, Me.Range("A1")) Is Nothing Then exit sub 'nots and nothings confuse me! else on error resume next Me.Name = Target.Value if err.number < 0 then beep 'or msgbox "Was not renamed!" err.clear end if on error goto 0 End If End Sub ====== To the OP: Remember that this event will fire when you're typing a new value--not the result of a calculation. And if you're typing in dates, you'll want to format the date to avoid invalid worksheet names. Something like: Me.Name = Format(Target.Value, "yyyymmdd") Peo Sjoblom wrote: Right click the sheet and select view code and paste in Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then ActiveSheet.Name = Target.Value End If End Sub -- Regards, Peo Sjoblom "RDana" wrote in message ... Is is possible to automatically rename a worksheet based on the contents of a cell? For Example: Cell A1 contains Bob Smith - I'd like the worksheet to automatically name itself Bob Smith, even if the contents of A1 change. I've done a search of the discussions here and found: =MID(CELL("filename",a1),SEARCH("]",CELL("filename",a1))+1,1024) The above example however works in reverse from what I'm looking for and copies the worksheet name to the cell. What I'd like to accomplish is copying the cell to the worksheet name if possible. -- Dave Peterson -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Nesting a sheet name reference within a cell reference??? | Excel Discussion (Misc queries) | |||
Move data to new sheet - rename sheet based on criteria ? | Excel Discussion (Misc queries) | |||
Insert sheet, move to end, rename with cell data. | Excel Discussion (Misc queries) | |||
how do I rename a sheet | New Users to Excel | |||
How do I automatically rename a sheet with the contents of a cell. | Excel Discussion (Misc queries) |