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

Вход

Регистрация

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

 

= Мир MS Excel/Надстройка для единственного файла Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Надстройка для единственного файла Excel (Макросы/Sub)
Надстройка для единственного файла Excel
EvgenyD Дата: Среда, 15.07.2015, 09:35 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте, уважаемые форумчане!
Довелось мне вчера впервые познакомиться с созданием надстроек, попробовал RibbonXMLEditor для изменений ленты. Написано на эту тему уже много и подробно. Но, никак не могу понять следующее. Допустим есть надстройка с отредактированной лентой, возможно ли подключать ее только к конкретному файлу? У меня есть включение и отключение при workbook open и beforeclose:
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   myAdd.Installed = False
End Sub
Private Sub Workbook_Open()
     Set myAdd = Application.AddIns.Add("C:\Users\Evgeniy\Desktop\Создание заявок\AddIn.xlam")
     myAdd.Installed = True
End Sub
[/vba]
Но естественно при параллельном открытии нескольких документов, во всех на ленте есть кнопки из надстройки, этим можно управлять или только так и будет?
 
Ответить
СообщениеЗдравствуйте, уважаемые форумчане!
Довелось мне вчера впервые познакомиться с созданием надстроек, попробовал RibbonXMLEditor для изменений ленты. Написано на эту тему уже много и подробно. Но, никак не могу понять следующее. Допустим есть надстройка с отредактированной лентой, возможно ли подключать ее только к конкретному файлу? У меня есть включение и отключение при workbook open и beforeclose:
[vba]
Код

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   myAdd.Installed = False
End Sub
Private Sub Workbook_Open()
     Set myAdd = Application.AddIns.Add("C:\Users\Evgeniy\Desktop\Создание заявок\AddIn.xlam")
     myAdd.Installed = True
End Sub
[/vba]
Но естественно при параллельном открытии нескольких документов, во всех на ленте есть кнопки из надстройки, этим можно управлять или только так и будет?

Автор - EvgenyD
Дата добавления - 15.07.2015 в 09:35
_Boroda_ Дата: Среда, 15.07.2015, 09:54 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А если еще (в дополнение к уже имеющимся) повесить в этом конкретном файле включение на Private Sub Workbook_Activate(), а отключение на Private Sub Workbook_Deactivate()?


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

Автор - _Boroda_
Дата добавления - 15.07.2015 в 09:54
EvgenyD Дата: Среда, 15.07.2015, 10:07 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо! До самого что-то не дошло.
 
Ответить
Сообщение_Boroda_, спасибо! До самого что-то не дошло.

Автор - EvgenyD
Дата добавления - 15.07.2015 в 10:07
doober Дата: Среда, 15.07.2015, 10:16 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
В модуле класса ExApp пропишете свое имя книги.
Этот вариант не надежный.
При выполнении любых макросов с ошибкой- этот вариант перестанет работать.
К сообщению приложен файл: myAddin.xlam (19.8 Kb)


 
Ответить
СообщениеВ модуле класса ExApp пропишете свое имя книги.
Этот вариант не надежный.
При выполнении любых макросов с ошибкой- этот вариант перестанет работать.

Автор - doober
Дата добавления - 15.07.2015 в 10:16
Саня Дата: Среда, 15.07.2015, 10:25 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Допустим есть надстройка с отредактированной лентой, возможно ли подключать ее только к конкретному файлу?


Перенесите весь VBA-код и xml-"фарш" из надстройки в этот файл - лента будет меняться при активации/деактивации данной книги.

ps
есть, конечно, проблемы в разделении "данные/код", но мало ли...
 
Ответить
Сообщение
Допустим есть надстройка с отредактированной лентой, возможно ли подключать ее только к конкретному файлу?


Перенесите весь VBA-код и xml-"фарш" из надстройки в этот файл - лента будет меняться при активации/деактивации данной книги.

ps
есть, конечно, проблемы в разделении "данные/код", но мало ли...

Автор - Саня
Дата добавления - 15.07.2015 в 10:25
EvgenyD Дата: Четверг, 16.07.2015, 15:16 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
Саня, благодарю за совет ,но я наоборот всю кучу своего говнокода хочу в надстройку убрать, т.к. этот код используется у 4-х пользователей, в виде надстройки его редактировать намного удобнее.
 
Ответить
СообщениеСаня, благодарю за совет ,но я наоборот всю кучу своего говнокода хочу в надстройку убрать, т.к. этот код используется у 4-х пользователей, в виде надстройки его редактировать намного удобнее.

Автор - EvgenyD
Дата добавления - 16.07.2015 в 15:16
EvgenyD Дата: Четверг, 16.07.2015, 15:46 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 74
Репутация: 19 ±
Замечаний: 0% ±

Excel 2013
doober, да, вариант с Activate неудачен, т.к. при выполнении какого-либо макроса с переходом в другую книгу надстройка отваливается и соответственно запущенная процедура из надстройки прерывается.Свой частный случай решил, некрасиво, но работает. Хотелось бы понять Ваше предложение, но ума не хватает, смотрю на эти несколько процедур по 3-4 строки, а понять что они делают не могу ). Подключить попробовал, в надстройке поменял имя файла в классе, подключил надстройку к этому файлу, перезапустил файл и
[vba]
Код

MyRibbon.InvalidateControl "rxTabTable"
[/vba]
вылетает ошибка.
Run time error 91 Object variable or With block variable not set.

Ну с sub Alles понятно ). Function getVisible - не нашел где задействована. Поможете разобраться?
 
Ответить
Сообщениеdoober, да, вариант с Activate неудачен, т.к. при выполнении какого-либо макроса с переходом в другую книгу надстройка отваливается и соответственно запущенная процедура из надстройки прерывается.Свой частный случай решил, некрасиво, но работает. Хотелось бы понять Ваше предложение, но ума не хватает, смотрю на эти несколько процедур по 3-4 строки, а понять что они делают не могу ). Подключить попробовал, в надстройке поменял имя файла в классе, подключил надстройку к этому файлу, перезапустил файл и
[vba]
Код

MyRibbon.InvalidateControl "rxTabTable"
[/vba]
вылетает ошибка.
Run time error 91 Object variable or With block variable not set.

Ну с sub Alles понятно ). Function getVisible - не нашел где задействована. Поможете разобраться?

Автор - EvgenyD
Дата добавления - 16.07.2015 в 15:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Надстройка для единственного файла Excel (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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