Страницы: 1
RSS
Запуск макроса кнопочкой
 
Коллеги! Даже как-то неловко спрашивать... Есть книга с макросом. Эта книга активно перемещается \ переименовывается как на одном компе, так и между компами. Необходимо в любом случае выполнить макрос, хранящийся в соответствующей копии книги.    
Мне приходится это делать через Alt-F8. А хочется повесить на кнопочку или на панель быстрого запуска. Но вот проблема имя макроса запоминается вместе с путем к книге, и если книгу переименовать \ переместить, то кнопочка перестает работать: пишет "Нет такого макроса" и "старый" путь.  
Как сделать так. чтобы кнопочка вызывала макрос с указанным именем, который находится в активной книге?
 
Сделайте кнопку в самой книге с макросом.
Я сам - дурнее всякого примера! ...
 
Кнопочка вызывает макрос с указанным именем из Personal.xls/m, который запускает макрос с указанным именем, который находится в активной книге.
 
{quote}{login=KukLP}{date=25.12.2011 07:32}{thema=}{post}Сделайте кнопку в самой книге с макросом.{/post}{/quote}  
Не понял. А где же я ее делаю? Или Вы имеете ввиду, что сам макрос надо разместить не в модуле, а в книге?
 
А где же я ее делаю? - это Вы кого спрашиваете? :)
 
{quote}{login=Hugo}{date=25.12.2011 08:31}{thema=}{post}А где же я ее делаю? - это Вы кого спрашиваете? :){/post}{/quote}  
Это я обсуждаю с KukLP
 
Молчу, молчу, обсуждайте втроём....
 
Игорь, ты ж знаешь, я с анонимами, как правило, ничего не обсуждаю.
Я сам - дурнее всякого примера! ...
 
Сергей, извини. Тогда пусть вдвоём обсуждают :)
 
{quote}{login=Hugo}{date=25.12.2011 08:18}{thema=}{post}Кнопочка вызывает макрос с указанным именем из Personal.xls/m, который запускает макрос с указанным именем, который находится в активной книге.{/post}{/quote}  
Ваш совет мне непонятен. Зачем заводить персональную книгу макросов? Ведь мне не нужно, чтобы мой макрос вызывался из любой книги.    
Требуемый макрос и так присутствует в списке макросов. Поясню проблему подробнее.  
Пусть у меня есть файл C:\b1.xlsm В нем макрос MyMacro(). Я создаю кнопку на панели быстрого вызова и назначаю ей макрос MyMacro. Сохраняю книгу.  
Открываю книгу; жму кнопку - все Ок.  
Переименовываю книгу в C:\b2.xlsm. Открываю. Если нажать кнопку на панели, получу сообщение, что файл C:\b1.xlsm не найден. Но если нажму Alt-F8, то в списке макросов благополучно присутствует MyMacro и его можно выполнить.  
Хочу, чтобы кнопка тоже работала, т.е. выполняла макрос MyMacro, который есть в активной книге, независимо от того, как эта книга называется.  
Кстати, проверил, что если макрос разместить не в модуле, а в самой книге (Эта книга), проблема остается.
 
{quote}{login=KukLP}{date=25.12.2011 08:37}{thema=}{post}Игорь, ты ж знаешь, я с анонимами, как правило, ничего не обсуждаю.{/post}{/quote}  
Я не аноним :) Я просто не увидел поля, куда писать имя.... Зовут меня Виктор.
 
{quote}{login=KukLP}{date=25.12.2011 07:32}{thema=}{post}Сделайте кнопку в самой книге с макросом.{/post}{/quote}  
Если макрос назначить кнопке на листе рабочей книги, проблема не решается...
 
Дошли намеки:-) Виктор, я писал не о панели быстрого доступа, а о кнопке на листе. Загляните сюда, я выкладыват там файлы с кнопками:  
<EM>http://forum.msexcel.ru/microsoft_excel/raspredelenie_po_strokam_po_opredelennym_­kriteriyam-t6926.0.html</EM>
Я сам - дурнее всякого примера! ...
 
А я писал как раз о панели быстрого доступа - кнопкой с панели запускаете макрос с известным именем из личной книги (путь постоянный), а уже он запускает макрос с известным именем из активной книги (путь роли не играет).
 
Вы правы. Если макрос привязан к кнопке на листе, то имя файла значения не имеет.  
Но хочется, все-же, на панель быстрого запуска. Это возможно?
 
Игорь ответил.
Я сам - дурнее всякого примера! ...
 
{quote}{login=Hugo}{date=25.12.2011 09:10}{thema=}{post}А я писал как раз о панели быстрого доступа - кнопкой с панели запускаете макрос с известным именем из личной книги (путь постоянный), а уже он запускает макрос с известным именем из активной книги (путь роли не играет).{/post}{/quote}  
Этот подход не хорош. Во-первых, путь не постоянный, т.к. эта штука работает на разных компьютерах. Во-вторых, это означает, что нужно распространять не 1 файл, а 2...
 
{quote}{login=Hugo}{date=25.12.2011 09:10}{thema=}{post}А я писал как раз о панели быстрого доступа - кнопкой с панели запускаете макрос с известным именем из личной книги (путь постоянный), а уже он запускает макрос с известным именем из активной книги (путь роли не играет).{/post}{/quote}Игорь ИМХО не очень технологично. А если юзать на другой машине, в другом Эксе? Тягать за собой персоналку и кнопки создавать? Вон по ссылке Димы как раз весь этот гемор описан.
Я сам - дурнее всякого примера! ...
 
Виктор, для Вас самое подходящее решение - кнопка на листе. Дешево и сердито. Можно еще на открытие книги вставлять пункт меню по ПКМ, но это опять же дополнительные телодвижения. На закрыие его еще удалять надо...
Я сам - дурнее всякого примера! ...
 
{quote}{login=KukLP}{date=25.12.2011 09:24}{thema=}{post}Виктор, для Вас самое подходящее решение - кнопка на листе. Дешево и сердито. Можно еще на открытие книги вставлять пункт меню по ПКМ, но это опять же дополнительные телодвижения. На закрыие его еще удалять надо...{/post}{/quote}  
В общем, состояние вопроса я уяснил. Спасибо всем!    
Похоже без подмены пути в OnAction проблема не решается. ИМХО странно это!  
Подмену, если я правильно понимаю, надо делать на событие Open книги...  
Повожусь...  
А что такое ПКМ?
 
Правая Кнопка Мыши.
Я сам - дурнее всякого примера! ...
 
Спасибо всем!
 
В Excel 2010 все оказалось гораздо проще! При настройках панели быстрого доступа можно выбрать книгу (см. рисунок). Теперь вызов макроса не зависит от пути расположения и имени книги!!! Что и требовалось...
Страницы: 1
Читают тему
Наверх