Здравствуйте помогите мне пожалуйста с написанием макроса. Есть книга с листами "Номер", "Инф", "Дан". На листе "Номер", когда встаешь в столбец "A" (в нем у меня находятся номера по порядку), в ячейку "A3", нужен такой макрос, который бы копировал лист "Шаблон", и переименовывал бы его на номер по порядку и т.д. в низ по таблице. Важно чтобы если номер по порядку по меняется, то и название листа менялось бы
Копирование листа из шаблона с названием по номеру по порядку
25.02.2015 16:19:44
|
|
|
|
25.02.2015 18:20:11
Спасибо, вроде подошло. А как сделать, так чтобы в скопированных листах в ячейки "B1" отображался номер по порядку, желательно через формулу например ячейка "B1"=Номер!A3, "B1"=Номер!A40 и т.д. У меня в модуле листа "шаблон", есть код который называет лист по данным ячейки.
|
|
|
|
25.02.2015 18:37:51
после ActiveSheet.Name
Изменено: |
|||
|
|
25.02.2015 19:12:10
Помогло, но не совсем. Возникла другая проблема, когда на лист "Номер", я меняю номер по порядку то название листа не меняется, приходится заходить в нужный лист, и двойным щелчком кликать по ячейки "B1", только тогда меняется название листа, автоматически можно как-то сделать? А кроме этого все нормально работает.
|
|
|
|
25.02.2015 21:57:18
|
|||
|
|
26.02.2015 08:52:14
Автопересчет формул не отключен. Попробуйте поменять в моем примере на листе " Номер", номер по порядку, то название листа не поменяется, нужно например будет перейти на лист "1", дважды щелкнуть по ячейки "B1", тогда поменяется.
|
|
|
|
26.02.2015 09:34:13
Djoni ваш код в модуле листа "Шаблон" в данном случае не поможет, он не отслеживает изменения в формулах.
|
|
|
|
26.02.2015 11:30:57
И как быть?
|
|
|
|
26.02.2015 12:29:19
как вариант при вставке листов вставлять в лист значение в некую ячейку (цвет шрифта сделать белым чтобы не было видно)
в модуле листа использовать Private Sub Worksheet_Calculate() с алгоритмом: если наша ячейка <>[B1] то проверяем наличие листа с новым именем, если такого нет то переименовываем. Или делать событие на изменения на листе НОМЕР. |
|
|
|
26.02.2015 14:51:29
|
|||
|
|
26.02.2015 17:00:21
моих знаний хватило на это (в модуль листа "Номер")
проверяйте, на черновике.
Изменено: |
|||||
|
|
26.02.2015 18:11:40
Я вставил код в модуль листа "Номер", ни чего не происходит. Ввел цифру в столбец с номером по порядку, выдает "Лист с именем 8 существует", "Лист с именем Пример существует", Я что-то не то делаю?
|
|
|
|
26.02.2015 18:40:19
макрос срабатывает при изменении значений в диапазоне "A3:A150", проходится по листам (кроме "Номер", "Инф", "Дан", "Должность", "Шаблон") и сверяет имя листа с значением ячейки В1 на этом листе, если не сходится то считает что номер изменен и меняет имя листа согласно ячейки. Но при замене если лист с таким именем уже существует выскочит ошибка, при ошибке макрос сообщает вам что лист существует, возвращает старое значение в измененную ячейку листа Номер и заканчивает работу кода. |
|||
|
|
26.02.2015 22:06:48
Djoni, для чего жали кнопку цитирования при создании сообщения №11? Условный рефлекс?
Прошу исправить. |
||||
|
|
|||