Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Переименовать название листа из ячейки. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переименовать название листа из ячейки. (Формулы/Formulas)
Переименовать название листа из ячейки.
lil000 Дата: Суббота, 12.01.2019, 11:15 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!

Нашел макрос у вас
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A2:A4"), Target) Is Nothing Then
For Each iCell In Target
Sheets(iCell.Row).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Row))
Next
End If
End Sub
[/vba]

Он рабочий но у меня задача чуть сложнее.
Нужно чтобы имя листов бралось из ячеек

Например из листа 2 диапазон ячеек F10:O10 имя бы подставлялось в нужный лист
F10 - лист 5
G10 - лист 6
H10 - лист 7
и так далее.....

Другими словами нужно чтобы имена нужных листов брались из горизонтального диапазона ячеек.

Заранее благодарен за помощь!
К сообщению приложен файл: Workbook_Change.xls (39.5 Kb)


Сообщение отредактировал lil000 - Суббота, 12.01.2019, 11:33
 
Ответить
СообщениеДобрый день!

Нашел макрос у вас
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A2:A4"), Target) Is Nothing Then
For Each iCell In Target
Sheets(iCell.Row).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Row))
Next
End If
End Sub
[/vba]

Он рабочий но у меня задача чуть сложнее.
Нужно чтобы имя листов бралось из ячеек

Например из листа 2 диапазон ячеек F10:O10 имя бы подставлялось в нужный лист
F10 - лист 5
G10 - лист 6
H10 - лист 7
и так далее.....

Другими словами нужно чтобы имена нужных листов брались из горизонтального диапазона ячеек.

Заранее благодарен за помощь!

Автор - lil000
Дата добавления - 12.01.2019 в 11:15
Pelena Дата: Суббота, 12.01.2019, 11:54 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Если точно по задаче, и листы Лист5, Лист6 и т.д. уже существуют
[vba]
Код
    For Each iCell In Range("F10:O10")
        If iCell <> "" Then Sheets(iCell.Column).Name = iCell.Value
    Next
[/vba]
Но меня терзают смутные сомнения, что задача описана не полностью
К сообщению приложен файл: 2891991.xls (66.0 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли точно по задаче, и листы Лист5, Лист6 и т.д. уже существуют
[vba]
Код
    For Each iCell In Range("F10:O10")
        If iCell <> "" Then Sheets(iCell.Column).Name = iCell.Value
    Next
[/vba]
Но меня терзают смутные сомнения, что задача описана не полностью

Автор - Pelena
Дата добавления - 12.01.2019 в 11:54
lil000 Дата: Суббота, 12.01.2019, 12:27 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Ура получилось

Вот что прописал:

Спасибо большое

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("F10:O10"), Target) Is Nothing Then
   For Each iCell In Range("F10:O10")
   Sheets(iCell.Column).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
    Next
End If
End Sub
[/vba]


Сообщение отредактировал lil000 - Суббота, 12.01.2019, 12:36
 
Ответить
СообщениеУра получилось

Вот что прописал:

Спасибо большое

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("F10:O10"), Target) Is Nothing Then
   For Each iCell In Range("F10:O10")
   Sheets(iCell.Column).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
    Next
End If
End Sub
[/vba]

Автор - lil000
Дата добавления - 12.01.2019 в 12:27
vikttur Дата: Суббота, 12.01.2019, 12:35 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

 
Ответить
СообщениеКросс
https://www.planetaexcel.ru/forum....acheyki

Автор - vikttur
Дата добавления - 12.01.2019 в 12:35
lil000 Дата: Вторник, 15.01.2019, 14:04 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем большое спасибо за помощь все заработало

Код такой

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
   For Each iCell In Range("G9:V9")
   Sheets(iCell.Column).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
    Next
End If
End Sub
[/vba]

Остался маленький вопрос:
Подскажите пожалуйста как поменять номер листа с которого начинается переименование.

Сейчас идет с 7 листа, то есть номер столбца и номер листа совпадает G=7.
Если мне нужно чтобы имя листа стояло в G9 а переименовывался 3 лист. Что нужно для этого?
 
Ответить
СообщениеВсем большое спасибо за помощь все заработало

Код такой

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
   For Each iCell In Range("G9:V9")
   Sheets(iCell.Column).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
    Next
End If
End Sub
[/vba]

Остался маленький вопрос:
Подскажите пожалуйста как поменять номер листа с которого начинается переименование.

Сейчас идет с 7 листа, то есть номер столбца и номер листа совпадает G=7.
Если мне нужно чтобы имя листа стояло в G9 а переименовывался 3 лист. Что нужно для этого?

Автор - lil000
Дата добавления - 15.01.2019 в 14:04
_Boroda_ Дата: Вторник, 15.01.2019, 14:32 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Файл не соответсвует макросу
Так хотели?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
        For Each iCell In Range("G9:V9")
            Sheets(3 + a).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
            a = a + 1
        Next
    End If
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеФайл не соответсвует макросу
Так хотели?
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
        For Each iCell In Range("G9:V9")
            Sheets(3 + a).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
            a = a + 1
        Next
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 15.01.2019 в 14:32
lil000 Дата: Вторник, 15.01.2019, 14:45 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_,
Переименовывает но выдает ошибку каждый раз 1004 имя уже используется
Но имен нет вообще
К сообщению приложен файл: SMETA19-15.xlsm (33.8 Kb)


Сообщение отредактировал lil000 - Вторник, 15.01.2019, 14:57
 
Ответить
Сообщение_Boroda_,
Переименовывает но выдает ошибку каждый раз 1004 имя уже используется
Но имен нет вообще

Автор - lil000
Дата добавления - 15.01.2019 в 14:45
lil000 Дата: Вторник, 15.01.2019, 14:58 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Файл покажите

Прикладываю

К предыдущему сообщению приложил тоже
К сообщению приложен файл: 7931559.xlsm (33.8 Kb)


Сообщение отредактировал lil000 - Вторник, 15.01.2019, 15:00
 
Ответить
Сообщение
Файл покажите

Прикладываю

К предыдущему сообщению приложил тоже

Автор - lil000
Дата добавления - 15.01.2019 в 14:58
_Boroda_ Дата: Вторник, 15.01.2019, 15:05 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У Вас уже есть лист Прихожая. Он скрытый и по счету 7-й. А Вы хотите третий лист назвать также. Низззя!
Чтобы не ругался, а пропускал такие вещи
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
        On Error Resume Next
        For Each iCell In Range("G9:V9")
            Sheets(3 + a).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
            a = a + 1
        Next
    End If
End Sub
[/vba]
К сообщению приложен файл: 7931559_1.xlsm (40.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ Вас уже есть лист Прихожая. Он скрытый и по счету 7-й. А Вы хотите третий лист назвать также. Низззя!
Чтобы не ругался, а пропускал такие вещи
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("G9:V9"), Target) Is Nothing Then
        On Error Resume Next
        For Each iCell In Range("G9:V9")
            Sheets(3 + a).Name = IIf(iCell <> "", iCell.Value, WorksheetFunction.Rept(" ", iCell.Column))
            a = a + 1
        Next
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 15.01.2019 в 15:05
StoTisteg Дата: Вторник, 15.01.2019, 15:20 | Сообщение № 10
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, меня мучают смутные подозрения, что [vba]
Код
On Error Resume Next
[/vba]должно быть внутри цикла, а не снаружи. Или я не прав?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение_Boroda_, меня мучают смутные подозрения, что [vba]
Код
On Error Resume Next
[/vba]должно быть внутри цикла, а не снаружи. Или я не прав?

Автор - StoTisteg
Дата добавления - 15.01.2019 в 15:20
lil000 Дата: Вторник, 15.01.2019, 15:26 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
У Вас уже есть лист Прихожая. Он скрытый и по счету 7-й. А Вы хотите третий лист назвать также. Низззя!
Чтобы не ругался, а пропускал такие вещи


Да затупил!

Спасибо огромное за помощь
 
Ответить
Сообщение
У Вас уже есть лист Прихожая. Он скрытый и по счету 7-й. А Вы хотите третий лист назвать также. Низззя!
Чтобы не ругался, а пропускал такие вещи


Да затупил!

Спасибо огромное за помощь

Автор - lil000
Дата добавления - 15.01.2019 в 15:26
_Boroda_ Дата: Вторник, 15.01.2019, 15:26 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
мучают смутные подозрения, что ... должно быть внутри цикла, а не снаружи. Или я не прав?

Не знаю, я Ваши мысли не читаю. "Мучают сомнения" немного отличается от "Я думаю, что нужно ... потому, что ..."


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
мучают смутные подозрения, что ... должно быть внутри цикла, а не снаружи. Или я не прав?

Не знаю, я Ваши мысли не читаю. "Мучают сомнения" немного отличается от "Я думаю, что нужно ... потому, что ..."

Автор - _Boroda_
Дата добавления - 15.01.2019 в 15:26
StoTisteg Дата: Вторник, 15.01.2019, 15:45 | Сообщение № 13
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Ну так вот я и думаю, что внутри, потому что ошибку может вызвать переименование листа. а не вход в цикл.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеНу так вот я и думаю, что внутри, потому что ошибку может вызвать переименование листа. а не вход в цикл.

Автор - StoTisteg
Дата добавления - 15.01.2019 в 15:45
_Boroda_ Дата: Вторник, 15.01.2019, 15:58 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А нафига нам холодильник, если бабушка не курит?

Связь какая?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА нафига нам холодильник, если бабушка не курит?

Связь какая?

Автор - _Boroda_
Дата добавления - 15.01.2019 в 15:58
StoTisteg Дата: Вторник, 15.01.2019, 16:43 | Сообщение № 15
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Связь такая, что OERN должен отработать непосредственно перед строкой, вызвавшей ошибку. Или я не прав и он до первой ошибки, а не до первой строки?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеСвязь такая, что OERN должен отработать непосредственно перед строкой, вызвавшей ошибку. Или я не прав и он до первой ошибки, а не до первой строки?

Автор - StoTisteg
Дата добавления - 15.01.2019 в 16:43
_Boroda_ Дата: Вторник, 15.01.2019, 16:50 | Сообщение № 16
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Справку почитать религия не позволяет?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСправку почитать религия не позволяет?

Автор - _Boroda_
Дата добавления - 15.01.2019 в 16:50
StoTisteg Дата: Вторник, 15.01.2019, 16:52 | Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Нет, хреновый английский.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеНет, хреновый английский.

Автор - StoTisteg
Дата добавления - 15.01.2019 в 16:52
_Boroda_ Дата: Вторник, 15.01.2019, 17:18 | Сообщение № 18
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня вообще никакой. Впрочем, как хотите


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня вообще никакой. Впрочем, как хотите

Автор - _Boroda_
Дата добавления - 15.01.2019 в 17:18
boa Дата: Среда, 16.01.2019, 17:03 | Сообщение № 19
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
Сейчас у мелкософта есть прекрасная справочная онлайн...
кстати, есть и на русском, правда, машинный перевод, но для понимания достаточно
Оператор On Error


 
Ответить
СообщениеСейчас у мелкософта есть прекрасная справочная онлайн...
кстати, есть и на русском, правда, машинный перевод, но для понимания достаточно
Оператор On Error

Автор - boa
Дата добавления - 16.01.2019 в 17:03
ZorKon714538 Дата: Понедельник, 23.01.2023, 21:22 | Сообщение № 20
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 20% ±

Доброго времени суток!

Куча листов... более 100...
Нужно их переименовать не по списку, а из одной и той же ячейки на каждом листе.

Помогите как...
Спасибо.
 
Ответить
СообщениеДоброго времени суток!

Куча листов... более 100...
Нужно их переименовать не по списку, а из одной и той же ячейки на каждом листе.

Помогите как...
Спасибо.

Автор - ZorKon714538
Дата добавления - 23.01.2023 в 21:22
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Переименовать название листа из ячейки. (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!