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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При создании новой книги ссылка на макрос ведет к предку (Макросы/Sub)
При создании новой книги ссылка на макрос ведет к предку
is_1 Дата: Суббота, 26.03.2016, 18:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 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
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

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


Интуитивно понятный код - это когда интуитивно понятно, что это код.

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

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

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

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

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

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

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


ЯД: 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
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

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

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

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


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

Автор - StoTisteg
Дата добавления - 26.03.2016 в 21:43
is_1 Дата: Суббота, 26.03.2016, 21:44 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 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
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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