Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Изменение имени листа

Автор __Nadya__, 12.10.2012, 16:12

« назад - далее »

__Nadya__

Подскажите пожалуйста, можно ли сделать так, чтоб при копировании листа "Данные_..." и изменении в нем (в скопированном) города в ячейке Е2, название листа менялось так, чтоб на месте "..." (или города с листа копирования) появлялся город из ячеейки Е2?
Например: был Лист "Данные_Москва" у него в ячейке Е1 было написано "Москва". Скопировали данный лист, и поменяли город в Е1 с Москвы на, например, Екатеринбург -  и тут же название Листа стало - "Данные_Екатеринбург". И так должно проделываться с каждым новым листом, который создается копией, т.к. их будет очень много.

cheshiki1

#1
вариант вставить в "Эта книга"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$E$1" Then
On Error Resume Next
Sh.Name = Sh.Range("e1")
If Not Err.Number = 0 Then MsgBox "Лист " & Sh.Name & " нельзя переименовать в " _
& Sh.Range("e1") & "," & Chr(1) & "лист " & Sh.Range("e1") & " уже есть в этой книге."
On Error GoTo 0
End If
End Sub


__Nadya__

А можно ли как-нибудь сделать, чтоб слово "Данные_" в названии листа не изменялось?

__Nadya__

Спасибо большое, сама разобралась. Изменила немного и все получилось:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$E$1" Then
On Error Resume Next
Sh.Name = "Данные_" & Sh.Range("e1")
If Not Err.Number = 0 Then MsgBox "Ëèñò " & Sh.Name & " íåëüçÿ ïåðåèìåíîâàòü â " _
& Sh.Range("e1") & "," & Chr(1) & "ëèñò " & Sh.Range("e1") & " óæå åñòü â ýòîé êíèãå."
On Error GoTo 0
End If
End Sub