ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   Rename Sheet using Cell Reference (https://www.excelbanter.com/excel-worksheet-functions/148710-rename-sheet-using-cell-reference.html)

RDana

Rename Sheet using Cell Reference
 
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.

Peo Sjoblom

Rename Sheet using Cell Reference
 
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

Rename Sheet using Cell Reference
 
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

Peo Sjoblom

Rename Sheet using Cell Reference
 
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

Rename Sheet using Cell Reference
 
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


All times are GMT +1. The time now is 10:02 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com