powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Настройки Excel (xla)
14 сообщений из 14, страница 1 из 1
Настройки Excel (xla)
    #32847082
unicode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть файл xla, я скопировал в папку автозагрузке Excel-а теперь файл xla загружаеться вместе с любой новой книгой, теперь вопрос такой....

Как мне потавить на панел инструментов кнопку, и привезать к ней модуль который находиться в файле xla, но все это должно работать под любым юзером.... уже несколько дней мучаюсь, ничего не получаеться.. помогите
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847224
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаешь свою панельку, на ней свою кнопку, потом открываешь свою надстройку, идеш в настройки панели инструментов, выбираешь свою панельку, жмешь кнопку вложить...
дальше уже дело техники
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847283
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicodexla я скопировал в папку автозагрузке Excel-а...
Как мне потавить на панел инструментов кнопку
и привезать к ней модуль который находиться в файле xla... Lenivecделаешь свою панельку, на ней свою кнопку, потом открываешь свою надстройку, идеш в настройки панели инструментов, выбираешь свою панельку, жмешь кнопку вложить...Всё гораздо проще:
1. xla помещаешь в папку C:\Program Files\Microsoft Office\Office\Library
2.В Excel'е: Сервис-->Надстройки - появляется строчка с именем ТВОЕЙ надстройки.
Ставь птицу и пользуйся, будь ты даже "негром преклонных годов"!
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847486
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Processor

все это понятно и ежу, но предложенный вариант не решает основного вопроса, создание своей кнопки под любым усером

дело в том что кнопку то можно создать, но после того будет осуществлен вход на машину под другим пользователем, панел и кнопка созданные перед этим в другом профиле не будут отображены на нового пользователя

мой же вариант решает эту проблему

а каким образом подключать надстройку это как говорится хозяин барин

да, кстати, надстройку не обязательно помещать в какой нить определенный каталог, она отлично будет работать из любого каталога, доступного всем пользователям
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847505
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847845
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lenivecсоздание своей кнопки под любым усером"под любым" не значит "для всех".
IMHO, on demand предпочтительнее.
Поэтому не факт, что это рационально:мой же вариант решает эту проблему...
будут отображены на нового пользователя...Насколько я понимаю, акцент поставлен на unicodeКак мне потавить на панел инструментов кнопку, и привезать к ней модуль который находиться в файле xlaБез лишних телодвижений свою кнопку (и не одну) можно поставить программно (и ненавязчиво), например, в КОНТЕКСТНО-ЗАВИСИМОЕ меню:
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32847915
unicode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на все это хорошо но вот модуль находящийся в файле xla нельзя присвоить кнопке так как Excel не видет этот макрос в списке макросов
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32848022
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Processor
можно и программно, но автор этого не спрашивал, поэтому я предложил наипростейший выриант, без программирования
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32848024
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicodeна все это хорошо но вот модуль находящийся в файле xla нельзя присвоить кнопке так как Excel не видет этот макрос в списке макросов
а руки тебе на что дадены, или кроме как на кнопки мыши тыкать больше ни на что не способен?
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32848044
Lenivec
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в конечном итоге надстройку её даже не обязательно подключать, чтобы получить доступ к её модулям, можно вообще в имя макроса для кнопки писать конструкцию типа:
'Путь к файлу'!Имя функции
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #32848164
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Lenivec]а руки тебе на что дадены...?[quot]И это - прямая обязанность программера.
В приводимом мною примере после того, как ЮЗЕР установил галочку напротив Add-In'а, код в xla встраивает соответствующие пункты
(или кнопки) "куда-следует", а юзер только информируется о том,
ЧТО ему стало доступно.
И наоборот, при снятии галочки код в xla демонтирует установленное,
но при этом чесно предупреждает:
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Настройки Excel (xla)
    #35485559
LeoCats
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не понял в чём трудность: при подключении AddIn модуля возникает событие AddinInstall. Поэтому достаточно добавить код обработки данного события, который и будет добавлять кнопку на панель. При отключении AddIn возникает событие AddinUninstall в котором нужно вставить код отключения кнопки. В качестве альтернативы можно обрабатывать события Open и BeforeClose (которые также возникают при открытиии и закрытиии AddIn). Вот пример кода для событий Open и BeforeClose :

'Задаём имя свойству Tag
Const strTagNameButtion As String = "Cheking_data"
Private Sub Workbook_Open()
Dim MyButton As Office.CommandBarButton
'Находим кнопку по свойству Tag
Set MyButton = Application.CommandBars.FindControl(, , strTagNameButtion)
'Если кнопка не создана - создаём
If MyButton Is Nothing Then
Set MyButton = Application.CommandBars("Worksheet Menu Bar").Controls.Add(1)
With MyButton
.Caption = "Ïðîâåðêà SAP"
.Style = msoButtonCaption
.Tag = strTagNameButtion
.TooltipText = "Здесь вводим текст подсказки"
.OnAction = ThisWorkbook.Name & "!Checking" ' после ! указываем имя процедуры которую нужно выполнить после нажатия на кнопку
End With
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim MyButton As Office.CommandBarButton
'Находим кнопку по свойству Tag
Set MyButton = Application.CommandBars.FindControl(, , strTagNameButtion)
'Если кнопка найдена - удалить
If Not MyButton Is Nothing Then MyButton.Delete
End Sub

Внимание! Данный код нужно добавить в объект "ЭтаКнига" при создании надстройки.

Кстати, надстройки xla лучше всего устанавливать Installером а не вручную. Я написал его на VBS. Очень удобно.
...
Рейтинг: 0 / 0
Настройки Excel (xla)
    #35489321
Just User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю точно, как будет работать код с открытием и закрытием, но я лично решая аналогичную проблему пришел к тому, что написал класс унаследованный от Application и всё работает без глюкоф.
Всех проблем не помню, но по моему некоторые события после запуска приложения чего-то не обрабатываются, поэтому прибег к этому выходу.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Настройки Excel (xla)
    #38176534
_#_konst_#_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeoCats, отличный пример, спасибо!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Настройки Excel (xla)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]