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

Вход

Регистрация

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

 

= Мир MS Excel/При создании новой книги ссылка на макрос ведет к предку - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При создании новой книги ссылка на макрос ведет к предку (Макросы/Sub)
При создании новой книги ссылка на макрос ведет к предку
is_1 Дата: Суббота, 26.03.2016, 18:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане!
Столкнулся с проблемой, решения которой пока не нашел.
Дано: книга Excel из 7 листов (Книга_1). На одном из листов Книги_1 имеется кнопка, при нажатии на которую срабатывает макрос, открывающий другую книгу. Макрос, запускаемый данной кнопкой, прописан на листе "Лист1" Книги_1.
При копировании листов из Книги_1 в новую книгу, сохранении под именем Книга_2 и ее закрытии, макрос на Листе1 сохраняется как пололжено без изменений. Однако кнопка, вызывающая данный макрос, ссылается на Книгу_1.
Подскажите, пожалуйста, есть ли возможность при сохранении книги, исправить путь запуска макроса с кнопки.
Заранее спасибо!
 
Ответить
СообщениеДобрый день, уважаемые форумчане!
Столкнулся с проблемой, решения которой пока не нашел.
Дано: книга Excel из 7 листов (Книга_1). На одном из листов Книги_1 имеется кнопка, при нажатии на которую срабатывает макрос, открывающий другую книгу. Макрос, запускаемый данной кнопкой, прописан на листе "Лист1" Книги_1.
При копировании листов из Книги_1 в новую книгу, сохранении под именем Книга_2 и ее закрытии, макрос на Листе1 сохраняется как пололжено без изменений. Однако кнопка, вызывающая данный макрос, ссылается на Книгу_1.
Подскажите, пожалуйста, есть ли возможность при сохранении книги, исправить путь запуска макроса с кнопки.
Заранее спасибо!

Автор - is_1
Дата добавления - 26.03.2016 в 18:53
StoTisteg Дата: Суббота, 26.03.2016, 19:59 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Пример нужен. Откуда ж мы узнаем, что у Вас там в коде кнопки прописано? А так всё правильно, если у Вас макрос обращается к Книга1, то каким волшебным образом он при копировании должен "узнать", что ему теперь не надо к ней обращаться, а надо обращаться к Книга2?


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Суббота, 26.03.2016, 20:01
 
Ответить
СообщениеПример нужен. Откуда ж мы узнаем, что у Вас там в коде кнопки прописано? А так всё правильно, если у Вас макрос обращается к Книга1, то каким волшебным образом он при копировании должен "узнать", что ему теперь не надо к ней обращаться, а надо обращаться к Книга2?

Автор - StoTisteg
Дата добавления - 26.03.2016 в 19:59
Karataev Дата: Суббота, 26.03.2016, 20:51 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 643
Репутация: 227 ±
Замечаний: 0% ±

Excel
is_1, вручную (без макросов) так можно изменить: кликните по кнопке правой мышью - Назначить макрос... - выберите нужную процедуру.


 
Ответить
Сообщениеis_1, вручную (без макросов) так можно изменить: кликните по кнопке правой мышью - Назначить макрос... - выберите нужную процедуру.

Автор - Karataev
Дата добавления - 26.03.2016 в 20:51
is_1 Дата: Суббота, 26.03.2016, 21:04 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Пример прикрепил. Karataev, о том, что вручную можно - знаю, но файлы будут рассылаться для отделов, а сотрудники, кроме нажатия на нужную кнопку, больше никакими навыками работы в Excel не обладают. ((
К сообщению приложен файл: 5396046.xls(64Kb)
 
Ответить
СообщениеПример прикрепил. Karataev, о том, что вручную можно - знаю, но файлы будут рассылаться для отделов, а сотрудники, кроме нажатия на нужную кнопку, больше никакими навыками работы в Excel не обладают. ((

Автор - is_1
Дата добавления - 26.03.2016 в 21:04
Manyasha Дата: Суббота, 26.03.2016, 21:27 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 1589
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
is_1, Вы же уже написали onAction для кнопки. Только книгу тоже нужно указывать, иначе макрос из ThisWorkbook будет браться
[vba]
Код
ActiveSheet.Shapes("Button 1").OnAction = ActiveWorkbook.Name & "!Лист1.Open_501"
[/vba]


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеis_1, Вы же уже написали onAction для кнопки. Только книгу тоже нужно указывать, иначе макрос из ThisWorkbook будет браться
[vba]
Код
ActiveSheet.Shapes("Button 1").OnAction = ActiveWorkbook.Name & "!Лист1.Open_501"
[/vba]

Автор - Manyasha
Дата добавления - 26.03.2016 в 21:27
is_1 Дата: Суббота, 26.03.2016, 21:36 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, таким образом уже пробовал - выдает ошибку на данной строчке "Компонент с указанным именем не найден".
К сообщению приложен файл: 0577135.jpg(44Kb)
 
Ответить
СообщениеManyasha, таким образом уже пробовал - выдает ошибку на данной строчке "Компонент с указанным именем не найден".

Автор - is_1
Дата добавления - 26.03.2016 в 21:36
StoTisteg Дата: Суббота, 26.03.2016, 21:43 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
is_1, а на какую строку-то ругается?


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщениеis_1, а на какую строку-то ругается?

Автор - StoTisteg
Дата добавления - 26.03.2016 в 21:43
is_1 Дата: Суббота, 26.03.2016, 21:44 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
StoTisteg, на эту: [vba]
Код
ActiveSheet.Shapes("Button 1").OnAction = ActiveWorkbook.Name & "!Лист1.Open_501"
[/vba]
[moder]Для оформления кода VBA есть кнопка #. Поправила Вам[/moder]


Сообщение отредактировал Manyasha - Суббота, 26.03.2016, 21:59
 
Ответить
СообщениеStoTisteg, на эту: [vba]
Код
ActiveSheet.Shapes("Button 1").OnAction = ActiveWorkbook.Name & "!Лист1.Open_501"
[/vba]
[moder]Для оформления кода VBA есть кнопка #. Поправила Вам[/moder]

Автор - is_1
Дата добавления - 26.03.2016 в 21:44
Manyasha Дата: Суббота, 26.03.2016, 21:52 | Сообщение № 9
Группа: Модераторы
Ранг: Старожил
Сообщений: 1589
Репутация: 669 ±
Замечаний: 0% ±

Excel 2007, 2010
is_1, вставьте эту строчку в макрос, где листы копируются в новые книги. Worksheet_Deactivate не нужен.
Добавила Вам в макрос отключение обновления экрана
К сообщению приложен файл: 5396046-1.xls(60Kb)


marinamorozova_box@mail.ru
ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеis_1, вставьте эту строчку в макрос, где листы копируются в новые книги. Worksheet_Deactivate не нужен.
Добавила Вам в макрос отключение обновления экрана

Автор - Manyasha
Дата добавления - 26.03.2016 в 21:52
is_1 Дата: Суббота, 26.03.2016, 22:00 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Manyasha, все заработало! Спасибо огромное за помощь!
 
Ответить
СообщениеManyasha, все заработало! Спасибо огромное за помощь!

Автор - is_1
Дата добавления - 26.03.2016 в 22:00
KuklP Дата: Суббота, 26.03.2016, 22:08 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2006
Репутация: 436 ±
Замечаний: 20% ±

Попробуйте, только не меняйте листы местами, пусть как есть :)
К сообщению приложен файл: 9948234.xls(68Kb)


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеПопробуйте, только не меняйте листы местами, пусть как есть :)

Автор - KuklP
Дата добавления - 26.03.2016 в 22:08
is_1 Дата: Суббота, 26.03.2016, 22:29 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, не менять листы не получится - я скинул пример, в рабочей книге 10 листов. Все равно, спасибо!
 
Ответить
СообщениеKuklP, не менять листы не получится - я скинул пример, в рабочей книге 10 листов. Все равно, спасибо!

Автор - is_1
Дата добавления - 26.03.2016 в 22:29
KuklP Дата: Суббота, 26.03.2016, 22:32 | Сообщение № 13
Группа: Проверенные
Ранг: Старожил
Сообщений: 2006
Репутация: 436 ±
Замечаний: 20% ±

Я просто хотел показать, что при открытии книги событие листа activate не возникает. Если же после открытия книги активировать лист вручную то onaction работает. И без указания книги.


Ну, с НДС и мы чего-то стoим! kuklp@mail.ru
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЯ просто хотел показать, что при открытии книги событие листа activate не возникает. Если же после открытия книги активировать лист вручную то onaction работает. И без указания книги.

Автор - KuklP
Дата добавления - 26.03.2016 в 22:32
is_1 Дата: Суббота, 26.03.2016, 23:20 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
KuklP, я изначально так и хотел сделать. Потому что заполняться листы будут по очереди, а в конце будет выбираться проверочный файл. Но выдавало ошибку при создании книг. Способ указанный Manyasha еще лучше подошел.
 
Ответить
СообщениеKuklP, я изначально так и хотел сделать. Потому что заполняться листы будут по очереди, а в конце будет выбираться проверочный файл. Но выдавало ошибку при создании книг. Способ указанный Manyasha еще лучше подошел.

Автор - is_1
Дата добавления - 26.03.2016 в 23:20
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При создании новой книги ссылка на макрос ведет к предку (Макросы/Sub)
Страница 1 из 11
Поиск:

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